"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
COMMENTS