"Invalid attempt to call MetaData when reader is closed." - Hatasi ve Çözümü
Bu makalemde ,Asp.Net 'de proje gelistirirken Ado.Net mimarisi kullanarak veritabani islemlerinizi gerçeklestirirken karsilasabileceginiz hatalardan birisi olabilecek olan "Invalid attempt to call MetaData when reader is closed" Hatasini ve Çözümünü anlatacagim
Bu hatanin sebebi ve çözümü çok basittir.
Hatanin sebebi yanlis SqlDataReader nesnesini yanlis yerde kullanilmasindan kaynaklanir.Sayfamizda en az 2 tane SqlDataReader nesnesi oldugunda bu hata meydana gelebilmektedir.Ilk SqlDataReader nesnesini kapattiktan sonra ikinci SqlDataReader nesnesi üzerinde islem yaparken okuma isleminde yanlislikla ilk kapattigimiz SqlDataReader nesnesini kullandigimizda bu hata meydana gelir ve kapatmis oldugun SqlDataReader ile okuma yapamazsin anlamini tasir bu hata yazisi.
Sayfamizda 2 tane sorgu varsa bir tanesi
SqlDataReader dr = sorgu.ExecuteReader();
while(dr.Read()==true)
{
TextBox1.Text=dr["UrunAd"].ToString();
}
dr.Close();
diger SqlDataReader nesneside
SqlDataReader dr2=sorgu2.ExecuteReader(); olsun
while(dr2.Read()==true)
{
TextBox2.Text=dr["Adres"].ToString();
}
görüldügü gibi ikinci SqlDataReader nesnesini satirini TextBox2'ye okuturken yanlislikla dr["Adres"].ToString() denilmis yani ilk SqlDataReader 'in nesnesi okutulmustur. dr2["Adres"].ToString(); yazilarak düzeltilir.
Bazen projelerden gözden kaçan bu küçük hataya dikkat edelim . Iyi Çalismalar
COMMENTS