PDA

View Full Version : علت بروز این خطا در تبادل اطلاعات بین صفحات



samaram
شنبه 17 تیر 1391, 07: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

اصطلاح "شیر کم چرب" رو از نظر اون فاصله ی بین "شیر" و "کم چرب" در تمام کدهای بالا بررسی کردم که مشابه باشن.

دیگه واقعا نمیدونم چیکار کنم که اون خطا رفع شه. میشه کمکم کنید؟!

samaram
شنبه 17 تیر 1391, 10:39 صبح
مشکل رو فهمیدم! با حرف "ی" مشکل داره. در کدهای بالا و داخل بانکم، "شیر" رو به "شور" تبدیل کردم درست شد! ولی آخه من میخوام با کلمه ی "شیر" کار کنم. چیکار کنم که حل شه؟
یه سرچ تو همین فروم انجام دادم و فهمیدم مشکل در سرچ فارسی و عربی برای دو حرف ی و ک هستش. اما اکثر راهنمایی ها داخل خود محیط اس کیو ال سرور بود. یعنی دستورات اس کیو ال براش گفته بودند. در صورتیکه من بانک هام رو با اس کیو ال سرور خود ویژوال استودیو ساختم. میشه بگید با تغییر در کدهای بالا چطور مشکل رو حل کنم؟

مهدی کرامتی
شنبه 17 تیر 1391, 11:10 صبح
در کوئری تان بعد از =n و قبا علامت ' یک حرف N بزرگ اضافه کنید

samira3
شنبه 17 تیر 1391, 11:13 صبح
سلام
SqlDataAdapter da = newSqlDataAdapter("select name,price,pic from [Mahsoolat_Tb] where name=n'"+str+"'", con);

samaram
شنبه 17 تیر 1391, 11:29 صبح
بیییییییییی نهایت ممنونم. حل شد.