Print Page | Close Window

HATA : Bu Command ile ilişkili, öncelikle kapatılm

Printed From: C#nedir?com
Category: ASP.NET
Forum Name: ASP.NET
Forum Description: ASP.NET
URL: http://forum.csharpnedir.com/forum_posts.asp?TID=50432
Printed Date: 28 Kasım 2021 at 23:07
Software Version: Web Wiz Forums 11.01 - http://www.webwizforums.com


Topic: HATA : Bu Command ile ilişkili, öncelikle kapatılm
Posted By: mtilki
Subject: HATA : Bu Command ile ilişkili, öncelikle kapatılm
Date Posted: 12 Eylül 2012 at 22:00
Bu Command ile ilişkili, öncelikle kapatılması gereken açık bir DataReader zaten var. diye bir hata alıyorum
 
hatanın tam merkezi sqldataadapter ayak1 e geldiginde direkt olarak hataya düşmektedir
 
 
kodlar ise readder nesnesini kullanarak tekrar sorgu çekerek tüm ayakları gezmem gerekli nasıl yaparım  bilmiyorum yardımınızı bekliyorum
 
 
kodlar:
 

string tarih = DropDownList1.SelectedItem.ToString();

SqlConnection cnn = new SqlConnection(baglanti);

SqlCommand bulgetir = new SqlCommand("select kullaniciadi,tarih,tutar from yarisyorum where baslik='" + DropDownList1.SelectedItem.ToString() + "'", cnn);

cnn.Open();

SqlDataReader rdr = bulgetir.ExecuteReader();

while (rdr.Read())

{

string isim = rdr.GetString(0);

 

 

string zaman = rdr.GetString(1);

string tutar =Convert.ToString(rdr.GetDecimal(2));

 

 

 

 

int altili = 0;

string hangisi = "at" + TextBox1.Text;

 

 

 

 

 

SqlDataAdapter ayak1 = new SqlDataAdapter("select * from ayak1 where yaris='" + DropDownList1.SelectedItem.ToString() + "' and kullaniciadi='"+isim+"'", cnn);

DataTable aya = new DataTable();

ayak1.Fill(aya);

if (Convert.ToString(aya.Rows[0][hangisi]) == Convert.ToString(TextBox1.Text))

{

altili++;

}

 

 

 

 

string hangisi2 = "at" + TextBox2.Text;

SqlDataAdapter ayak2 = new SqlDataAdapter("select * from ayak2 where yaris='" + DropDownList1.SelectedItem.ToString() + "' and kullaniciadi='"+isim+"'", cnn);

DataTable aya2 = new DataTable();

ayak2.Fill(aya2);

if (Convert.ToString(aya2.Rows[0][hangisi2]) == Convert.ToString(TextBox2.Text))

{

altili++;

}

 

 

 

string hangisi3 = "at" + TextBox3.Text;

SqlDataAdapter ayak3 = new SqlDataAdapter("select * from ayak3 where yaris='" + DropDownList1.SelectedItem.ToString() + "' and kullaniciadi='"+isim+"'", cnn);

DataTable aya3 = new DataTable();

ayak3.Fill(aya3);

if (Convert.ToString(aya3.Rows[0][hangisi3]) == Convert.ToString(TextBox3.Text))

{

altili++;

}

 

 

 

string hangisi4 = "at" + TextBox4.Text;

SqlDataAdapter ayak4 = new SqlDataAdapter("select * from ayak4 where yaris='" + DropDownList1.SelectedItem.ToString() + "' and kullaniciadi='"+isim+"'", cnn);

DataTable aya4 = new DataTable();

ayak4.Fill(aya4);

if (Convert.ToString(aya4.Rows[0][hangisi4]) == Convert.ToString(TextBox4.Text))

{

altili++;

}

 

 

 

 

string hangisi5 = "at" + TextBox5.Text;

SqlDataAdapter ayak5 = new SqlDataAdapter("select * from ayak5 where yaris='" + DropDownList1.SelectedItem.ToString() + "' and kullaniciadi='"+isim+"'", cnn);

DataTable aya5 = new DataTable();

ayak5.Fill(aya5);

if (Convert.ToString(aya5.Rows[0][hangisi5]) == Convert.ToString(TextBox5.Text))

{

altili++;

}

 

 

 

 

string hangisi6 = "at" + TextBox6.Text;

SqlDataAdapter ayak6 = new SqlDataAdapter("select * from ayak6 where yaris='" + DropDownList1.SelectedItem.ToString() + "' and kullaniciadi='"+isim+"'", cnn);

DataTable aya6 = new DataTable();

ayak6.Fill(aya6);

if (Convert.ToString(aya6.Rows[0][hangisi6]) == Convert.ToString(TextBox6.Text))

{

altili++;

}

 

if (altili == 6)

{

SqlCommand cmm = new SqlCommand("insert into kazanyarisma (baslik,kim,tutar,tarih,ikramiye) values (@bas,@kim,@tut,@tar,@iky)", cnn);

cmm.Parameters.AddWithValue("@bas", DropDownList1.SelectedItem.ToString());

cmm.Parameters.AddWithValue("@kim", isim);

cmm.Parameters.AddWithValue("@tut", tutar);

cmm.Parameters.AddWithValue("@tar", zaman);

cmm.Parameters.AddWithValue("@iky", TextBox7.Text);

cmm.ExecuteNonQuery();

cnn.Close();

}

 

 

 

}



-------------
böööööööööööööö



Replies:
Posted By: orn87
Date Posted: 12 Eylül 2012 at 23:31
 tam emin değilim ama string hangisi = "at" + TextBox1.Text;
satırından sonra reader'ı kapatmanda yarar var yani en azından hata buna yönelik gibi duruyor:)
ayrıca bu tip şeylerde sana kolaylık sağlaması için reader'ın nextresult (yanlıs hatırlamıyosam) diye bir olayı var istersen araştırabilirsin...



Posted By: efeefe
Date Posted: 13 Eylül 2012 at 08:28
Hatanın sebebi bir Connection nesnesini bir fazla DataReader nesne kullanıp DataReader nesnelerini kapatmamandan kaynaklanıyor.Çözümü senin kullandığın DataAdapterlerin her biri için yeni Connection tanımlamak(ki gereksiz) bence bu kadar zorlama kendini Lınq To Sql dediğimiz kavramı araştır sana gerçekten yararı olur.


Posted By: omrdes
Date Posted: 03 Ağustos 2020 at 12:49
çok uzatmayın    SqlConnection  nesnesine MultipleActiveResultSets=True ekleyin düzelir...
Örn :SqlConnection baglan = new SqlConnection(@"Server=.;Database=;uid=sa;password=;MultipleActiveResultSets=True");



Print Page | Close Window

Forum Software by Web Wiz Forums® version 11.01 - http://www.webwizforums.com
Copyright ©2001-2014 Web Wiz Ltd. - http://www.webwiz.co.uk