nasime_shomal
سه شنبه 04 اسفند 1388, 14:59 عصر
سلام دوستان من به تازگی کتاب سی شارپم رو تموم کردم. الان دارم اون چیزیایی راکه خوانده ام به امتحان میزارم. از یک برنامه کتابخانه شروع کردم. توی این برنامه یه قسمت سرچ کتاب هستش که با خاصیت تکست چنج یک تکست باکس انجام میشه. این سرچ برا ساس سه نوع سرچ صورت میگیره یکی نام کتاب یکی شماره کتاب و دیگری نویسنده کتاب. من برای هر یک از این نوع جستجو یک رادیو باتن قرار داده ام. و با انتخاب هر نوع رادیو باتن سرچ بر اساس اون نوع تنظیم میشه. حالا مشکل من اینجاست که وقتی برنامه را اجرا میکنم و شروع به تایپ کلمه میکنم توی اولین حرف مشکلی نداره و برنامه به خوبی کار میکنه ولی توی دومین حرف که میزنم یه ارور میده به این شکل
There is already an open DataReader associated with this Command which must be closed first.
که این ارور در این خطه :
sdrKetabKhane = scFormKetabkhane.ExecuteReader();
کل دستورات توی تکست چنج هم اینه:
private void textBoxSearch_TextChanged(object sender, EventArgs e)
{
SqlDataReader sdrKetabKhane = null;
SqlCommand scFormKetabkhane ;
if (radioButtonBookName.Checked == true)
scFormKetabkhane = new SqlCommand("select * from TableKetabKhane where bookName like \'%" + textBoxSearch.Text + "%\'", connKetabKhane);
else if (radioButtonWriter.Checked==true)
scFormKetabkhane = new SqlCommand("select * from TableKetabKhane where bookID like \'%" + textBoxSearch.Text + "%\'", connKetabKhane);
else
scFormKetabkhane = new SqlCommand("select * from TableKetabKhane where writer like \'%" + textBoxSearch.Text + "%\'", connKetabKhane);
sdrKetabKhane = scFormKetabkhane.ExecuteReader();
int c = 0;
while (sdrKetabKhane.Read())
{
dataGridViewKetabKhane.Rows.Add();
dataGridViewKetabKhane.Rows[c].Cells[0].Value = sdrKetabKhane["bookName"].ToString();
dataGridViewKetabKhane.Rows[c].Cells[1].Value = sdrKetabKhane["tedadeKetab"].ToString();
dataGridViewKetabKhane.Rows[c].Cells[2].Value = sdrKetabKhane["writer"].ToString();
dataGridViewKetabKhane.Rows[c].Cells[3].Value = sdrKetabKhane["bookID"].ToString();
dataGridViewKetabKhane.Rows[c].Cells[4].Value = sdrKetabKhane["subject"].ToString();
c++;
}
}
حالا میخواستم دوستان لطف کنند بگند مشکل از کجاست و چه کار کنم که مشکلم حل شه.
There is already an open DataReader associated with this Command which must be closed first.
که این ارور در این خطه :
sdrKetabKhane = scFormKetabkhane.ExecuteReader();
کل دستورات توی تکست چنج هم اینه:
private void textBoxSearch_TextChanged(object sender, EventArgs e)
{
SqlDataReader sdrKetabKhane = null;
SqlCommand scFormKetabkhane ;
if (radioButtonBookName.Checked == true)
scFormKetabkhane = new SqlCommand("select * from TableKetabKhane where bookName like \'%" + textBoxSearch.Text + "%\'", connKetabKhane);
else if (radioButtonWriter.Checked==true)
scFormKetabkhane = new SqlCommand("select * from TableKetabKhane where bookID like \'%" + textBoxSearch.Text + "%\'", connKetabKhane);
else
scFormKetabkhane = new SqlCommand("select * from TableKetabKhane where writer like \'%" + textBoxSearch.Text + "%\'", connKetabKhane);
sdrKetabKhane = scFormKetabkhane.ExecuteReader();
int c = 0;
while (sdrKetabKhane.Read())
{
dataGridViewKetabKhane.Rows.Add();
dataGridViewKetabKhane.Rows[c].Cells[0].Value = sdrKetabKhane["bookName"].ToString();
dataGridViewKetabKhane.Rows[c].Cells[1].Value = sdrKetabKhane["tedadeKetab"].ToString();
dataGridViewKetabKhane.Rows[c].Cells[2].Value = sdrKetabKhane["writer"].ToString();
dataGridViewKetabKhane.Rows[c].Cells[3].Value = sdrKetabKhane["bookID"].ToString();
dataGridViewKetabKhane.Rows[c].Cells[4].Value = sdrKetabKhane["subject"].ToString();
c++;
}
}
حالا میخواستم دوستان لطف کنند بگند مشکل از کجاست و چه کار کنم که مشکلم حل شه.