samaram
شنبه 17 تیر 1391, 08:43 صبح
من یه منو دارم که با کلیک روی یکی از گزینه هاش مقدار اون گزینه ی منو رو به یه صفحه ی دیگه میبره و اونجا اون مقدار رو در بانک جستجو میکنه. اما به محض کلیک روی اون گزینه با پیغام زیر روبرو میشم!:
There is no row in position 0
در صورتیکه مطمئنم مقداری که دارم به عنوان شرط دستور select روش تصمیم می گیرم درسته. یعنی اون مقدار "شیر کم چرب" تو بانک وجود داره. فقط هم برای همین یک گزینه از منو مشکل دارم. سایر گزینه ها رو راحت از بانک میخونه. خطا تو این خط اتفاق میفته:
lblname.Text = ds.Tables["Mahsoolat_Tb"].Rows[0]["name"].ToString();
کدهامو ببینید:
این تو متد کلیک منو:
protectedvoid Menu2_MenuItemClick(object sender, MenuEventArgs e)
{
switch (e.Item.Value)
{
case"1":
{
Response.Redirect("~/User/Showmahsool.aspx?n=ماست پرچرب");
break;
}
case"2":
{
Response.Redirect("~/User/Showmahsool.aspx?n=ماست کم چرب");
break;
}
case"3":
{
Response.Redirect("~/User/Showmahsool.aspx?n=دوغ ساده");
break;
}
case"4":
{
Response.Redirect("~/User/Showmahsool.aspx?n=دوغ طعم دار");
break;
}
case"5":
{
Response.Redirect("~/User/Showmahsool.aspx?n=شیر کم چرب");
break;
}
default:
break ;
}
}
این اون صفحه ای که اطلاعات بهش پاس میشه. یعنی صفحه ی showmahsool که خطا هم همینجا اتفاق میفته
protectedvoid Page_Load(object sender, EventArgs e)
{
string str = Request.QueryString["n"];
SqlConnection con = newSqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\MilkDb.mdf;Integrated Security=True;User Instance=True");
SqlDataAdapter da = newSqlDataAdapter("select name,price,pic from [Mahsoolat_Tb] where name='"+str+"'", con);
DataSet ds = newDataSet();
da.Fill(ds, "Mahsoolat_Tb");
lblname.Text = ds.Tables["Mahsoolat_Tb"].Rows[0]["name"].ToString();
lblprice .Text = ds.Tables["Mahsoolat_Tb"].Rows[0]["price"].ToString();
Image1 .ImageUrl = ds.Tables["Mahsoolat_Tb"].Rows[0]["pic"].ToString();
}
اینم یه تصویر از جدولم که ببینید این رکورد دقیقا اونجا وجود داره:
89330
اصطلاح "شیر کم چرب" رو از نظر اون فاصله ی بین "شیر" و "کم چرب" در تمام کدهای بالا بررسی کردم که مشابه باشن.
دیگه واقعا نمیدونم چیکار کنم که اون خطا رفع شه. میشه کمکم کنید؟!
There is no row in position 0
در صورتیکه مطمئنم مقداری که دارم به عنوان شرط دستور select روش تصمیم می گیرم درسته. یعنی اون مقدار "شیر کم چرب" تو بانک وجود داره. فقط هم برای همین یک گزینه از منو مشکل دارم. سایر گزینه ها رو راحت از بانک میخونه. خطا تو این خط اتفاق میفته:
lblname.Text = ds.Tables["Mahsoolat_Tb"].Rows[0]["name"].ToString();
کدهامو ببینید:
این تو متد کلیک منو:
protectedvoid Menu2_MenuItemClick(object sender, MenuEventArgs e)
{
switch (e.Item.Value)
{
case"1":
{
Response.Redirect("~/User/Showmahsool.aspx?n=ماست پرچرب");
break;
}
case"2":
{
Response.Redirect("~/User/Showmahsool.aspx?n=ماست کم چرب");
break;
}
case"3":
{
Response.Redirect("~/User/Showmahsool.aspx?n=دوغ ساده");
break;
}
case"4":
{
Response.Redirect("~/User/Showmahsool.aspx?n=دوغ طعم دار");
break;
}
case"5":
{
Response.Redirect("~/User/Showmahsool.aspx?n=شیر کم چرب");
break;
}
default:
break ;
}
}
این اون صفحه ای که اطلاعات بهش پاس میشه. یعنی صفحه ی showmahsool که خطا هم همینجا اتفاق میفته
protectedvoid Page_Load(object sender, EventArgs e)
{
string str = Request.QueryString["n"];
SqlConnection con = newSqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\MilkDb.mdf;Integrated Security=True;User Instance=True");
SqlDataAdapter da = newSqlDataAdapter("select name,price,pic from [Mahsoolat_Tb] where name='"+str+"'", con);
DataSet ds = newDataSet();
da.Fill(ds, "Mahsoolat_Tb");
lblname.Text = ds.Tables["Mahsoolat_Tb"].Rows[0]["name"].ToString();
lblprice .Text = ds.Tables["Mahsoolat_Tb"].Rows[0]["price"].ToString();
Image1 .ImageUrl = ds.Tables["Mahsoolat_Tb"].Rows[0]["pic"].ToString();
}
اینم یه تصویر از جدولم که ببینید این رکورد دقیقا اونجا وجود داره:
89330
اصطلاح "شیر کم چرب" رو از نظر اون فاصله ی بین "شیر" و "کم چرب" در تمام کدهای بالا بررسی کردم که مشابه باشن.
دیگه واقعا نمیدونم چیکار کنم که اون خطا رفع شه. میشه کمکم کنید؟!