Invalid attempt to call MetaData when reader is closed Hatası
 

"Invalid attempt to call MetaData when reader is closed." - Hatası ve Çözümü

Bu makalemde ,Asp.Net 'de proje geliştirirken Ado.Net mimarisi kullanarak veritabanı işlemlerinizi gerçekleştirirken karşılaşabileceğiniz hatalardan birisi olabilecek olan  "Invalid attempt to call MetaData when reader is closed" Hatasını ve Çözümünü anlatacağım

Bu hatanın sebebi  ve çözümü çok basittir.
Hatanın sebebi  yanlış SqlDataReader  nesnesini yanlış yerde kullanılmasından kaynaklanır.Sayfamızda en az  2 tane SqlDataReader nesnesi olduğunda bu hata meydana gelebilmektedir.İlk SqlDataReader nesnesini kapattıktan sonra ikinci SqlDataReader nesnesi üzerinde işlem yaparken okuma işleminde yanlışlıkla ilk kapattığımız SqlDataReader nesnesini kullandığımızda bu hata meydana gelir ve kapatmış olduğun SqlDataReader ile okuma yapamazsın anlamını taşır bu hata yazısı.

Sayfamızda 2 tane  sorgu varsa bir tanesi
SqlDataReader dr = sorgu.ExecuteReader();
while(dr.Read()==true)
{
TextBox1.Text=dr["UrunAd"].ToString();
}

dr.Close();


diğer SqlDataReader nesneside
SqlDataReader dr2=sorgu2.ExecuteReader();  olsun
while(dr2.Read()==true)
{
TextBox2.Text=dr["Adres"].ToString(); 
}


görüldüğü gibi ikinci SqlDataReader nesnesini satırını TextBox2'ye okuturken yanlışlıkla dr["Adres"].ToString() denilmiş yani ilk SqlDataReader 'ın nesnesi okutulmuştur. dr2["Adres"].ToString();  yazılarak düzeltilir.


Bazen projelerden gözden kaçan bu küçük hataya dikkat edelim . İyi Çalışmalar

 

 

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

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