Invalid attempt to call MetaData when reader is closed Hatası
 

"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

 

 

Author: Engin ATALAY
Date: 15.02.2013 13:30:17
View Count: 6457
 
 

COMMENTS
 
No comments yet. Be the first to comment who you are.
 
 
 
 
 
 
 
WRITE COMMENT
 
 
Your Name :
 
 
 
E-mail :
 
 
 
Your Message :
 
 
 
 
 
 
 
This project : ASP.NET MVC , RAZOR, Entity Framework , CSS , HTML , JQUERY(2.0.2) , AJAX the C# side-tier architecture was developed with logic.
 
Yukarı Çık