C#nedir?com Homepage
Forum Home Forum Home > ASP.NET > ASP.NET
  New Posts New Posts RSS Feed - HATA : Bu Command ile ilişkili, öncelikle kapatılm
  FAQ FAQ  Forum Search   Events   Register Register  Login Login

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

 Post Reply Post Reply
   

Author
Message
mtilki View Drop Down
Senior Member
Senior Member


Joined: 18 Kasım 2010
Location: Turkey
Status: Offline
Points: 304
Post Options Post Options   Thanks (0) Thanks(0)   Quote mtilki Quote  Post ReplyReply Direct Link To This Post Topic: HATA : Bu Command ile ilişkili, öncelikle kapatılm
    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öööööööööööööö
Back to Top
orn87 View Drop Down
Groupie
Groupie


Joined: 07 Ocak 2012
Status: Offline
Points: 62
Post Options Post Options   Thanks (0) Thanks(0)   Quote orn87 Quote  Post ReplyReply Direct Link To This Post 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...

Back to Top
efeefe View Drop Down
Groupie
Groupie


Joined: 23 Temmuz 2012
Location: Turkey
Status: Offline
Points: 145
Post Options Post Options   Thanks (0) Thanks(0)   Quote efeefe Quote  Post ReplyReply Direct Link To This Post 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.

Edited by efeefe - 13 Eylül 2012 at 08:28
Back to Top
omrdes View Drop Down
Newbie
Newbie


Joined: 03 Ağustos 2020
Status: Offline
Points: 1
Post Options Post Options   Thanks (0) Thanks(0)   Quote omrdes Quote  Post ReplyReply Direct Link To This Post 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");
Back to Top
 Post Reply Post Reply
  Share Topic   
   


Forum Jump Forum Permissions View Drop Down

Forum Software by Web Wiz Forums® version 11.01
Copyright ©2001-2014 Web Wiz Ltd.