PDA

View Full Version : مشکل این کد ساده چیست؟ (select کردن)



leontry89
چهارشنبه 18 تیر 1393, 11:36 صبح
دوستان مشکل این کد ساده چیست:
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrin gs["G"].ConnectionString); SqlCommand cmd;
con.Open();
cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;


string str = "Select * from IndexNews";
SqlDataReader reader1 = new SqlCommand(str, con).ExecuteReader();
while (reader1.Read())
{
lblAjaxNews.Text = Convert.ToString(reader1["News"]);
lblDateTimeAjaxNews.Text = Convert.ToString(reader1["DateTime"]);
}


cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT TOP 5 * FROM Events ORDER BY ID DESC";
cmd.Connection = con;
if (con.State != ConnectionState.Open)
{
con.Open();
}
Repeater1.DataSource = cmd.ExecuteReader();
Repeater1.DataBind();
con.Close();

leontry89
چهارشنبه 18 تیر 1393, 14:30 عصر
بچه ها کسی نیست کمکم کنه؟

مرتضی تقدمی
چهارشنبه 18 تیر 1393, 19:13 عصر
سلام
اگه خطا میده متن خطا رو قرار بدین.

leontry89
پنج شنبه 19 تیر 1393, 17:40 عصر
این خطا رو میده:
There is already an open DataReader associated with this Command which must be closed first.

rafiee.mostafa64
پنج شنبه 19 تیر 1393, 18:50 عصر
چرا یک بار متغییر cmd رو new کردی و هیچ استفاده ازش نکردی و دوباره همون متغییر رو بعد از reader دوباره new کردی ؟؟؟

leontry89
پنج شنبه 19 تیر 1393, 21:26 عصر
چرا یک بار متغییر cmd رو new کردی و هیچ استفاده ازش نکردی و دوباره همون متغییر رو بعد از reader دوباره new کردی ؟؟؟
میشه طریقه درستش و برام بنویسید
یک دنیا سپاس

leontry89
جمعه 20 تیر 1393, 14:20 عصر
بچه ها کسی نیست کمکم کنه

rafiee.mostafa64
جمعه 20 تیر 1393, 15:15 عصر
دوست عزیز یه کم به کدهایی که میزنی و ارور هایی که داده میشه دقت کن اولا لازم نیست هر دفعه cmd رو new کنی .ثانیا خود اورو داره میگه چی کار کنی باید اول data reader رو close کنی
کد تو ب ه صورت زیر تغییر بده

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrin gs["G"].ConnectionString);
SqlCommand cmd;
con.Open();
cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "Select * from IndexNews";
SqlDataReader reader1 = cmd.ExecuteReader();
while (reader1.Read())
{
lblAjaxNews.Text = Convert.ToString(reader1["News"]);
lblDateTimeAjaxNews.Text = Convert.ToString(reader1["DateTime"]);
}
reader1.Close();
cmd.CommandText = "SELECT TOP 5 * FROM Events ORDER BY ID DESC";
if (con.State != ConnectionState.Open)
{
con.Open();
}
Repeater1.DataSource = cmd.ExecuteReader();
Repeater1.DataBind();
con.Close();

اگه بازم ارور داد ببین دقیقا چی میگه . ضمنا سعی کن روی کد هایی که استفاده میکنی تسلط بیشتری پیدا کنی.

leontry89
جمعه 20 تیر 1393, 15:49 عصر
درست شد دوست عزیز
ممنونم ازت