PDA

View Full Version : مشکل با دستورselect



emilly
پنج شنبه 26 شهریور 1394, 18:53 عصر
سلام دوستان



من یه همچین کدی نوشتم با وجود اینکه مقدارم توی دیتابیس موجوده ولی هیچ خطا یا نتیجه ای رو برام نمیاره ........................

اینم از کدم :




string a= Request.QueryString.ToString();
Response.Write("select id is: " + a);
int id;
id = int.Parse(a);
string T_SQL = "SELECT * FROM TABLE1 WHERE Id =' " + id + " '";

SqlConnection myConn = new SqlConnection(ConfigurationManager.ConnectionStrin gs["SqlDataSource1"].ConnectionString.ToString());
SqlCommand myComm = new SqlCommand(T_SQL, myConn);
myComm.Parameters.AddWithValue("Id", id);

SqlDataReader myDataReader;

myConn.Open();
myDataReader = myComm.ExecuteReader();

if (myDataReader.Read())
{
Label1.Text = myDataReader.GetValue(0).ToString();
Label2.Text = myDataReader.GetValue(1).ToString();
Label3.Text = myDataReader.GetValue(2).ToString();

}
myConn.Close();

fakhravari
جمعه 27 شهریور 1394, 00:53 صبح
Id =' " + id + " '

id از نوع رشته مگه کاراکتر ' گذاشتی.
در هر صورت باید دیباگ کنید

emilly
جمعه 27 شهریور 1394, 08:24 صبح
Id =' " + id + " '

id از نوع رشته مگه کاراکتر ' گذاشتی.
در هر صورت باید دیباگ کنید

Id یم از نوع رشته نیست ازنوع int ………
داخل یه متغیر ریختم به نام Id ……………

f.mirshekar
جمعه 27 شهریور 1394, 11:21 صبح
سلام

دستور Query خودتون رو به این شکل تغییر بدهید



string T_SQL = "SELECT * FROM TABLE1 WHERE Id=@Id;

البته Syntaxt خط پایین رو نمی دونم درست می نویسم یا نه


myComm.Parameters.Add("Id",SqlDbType.int).Value=Id;

mbasirati
جمعه 27 شهریور 1394, 11:28 صبح
کوئری رو به این شکل بنویسید:

"SELECT * FROM TABLE1 WHERE Id =@id"



و بعد:

myComm.Parameters.AddWithValue("@id", id);

emilly
جمعه 27 شهریور 1394, 14:06 عصر
دوستان از همگی خیلی خیلی ممنونم اجازه بدین شاید بهترباشه کمی بیشتر توضیح بدم :

ببینین دوستان من یه مقداری رو (id)از یه صفحه اولم گرفتم و گذاشتمش توی a بعدش چون مقدار این از نوع string بود به int تبدیلش کردم که همون id یم شده ....................
میخوام توی صفحه دومم اطلاعات کامل اون id که از صفحه اول انتخاب شده بود و به صفحه دومم ارسال شده رو از دیتابیسم انتخاب کرده ونمایش بدم ...............
حالا من چه مقدار a رو که string هستش رو میذارم چه id که مقدار int هست رو میذارم هیچ جوابی نمیگیرم ..............

راه های دوتان عزیز رو هم امتحان کردم ولی بازم جواب نگرفتم.....................

emilly
جمعه 27 شهریور 1394, 15:02 عصر
توی کدهام چه ایرادیه که
Response.Write("select id is: " + a); درست نمایش داده میشه ولی بقیه کدهای مرببوط به دیتابیسم جواب نمیدن ؟؟؟؟؟؟؟؟؟؟/:عصبانی++:

mbasirati
جمعه 27 شهریور 1394, 15:06 عصر
بهترین راه اینه که کدتون رو خط به خط اجرا کنید تا متوجه بشید اشکال کار کجاس

emilly
جمعه 27 شهریور 1394, 22:29 عصر
به روز رسانی

f.mirshekar
شنبه 28 شهریور 1394, 12:11 عصر
دوست گرامی این خط رو هم عوض کنید شاید فرجی شد

string con=ConfigurationManager.ConnectionString.Connecti onString.ToString());

SqlConnection myConn = new SqlConnection(con);

شرلوک هلمز
یک شنبه 29 شهریور 1394, 17:53 عصر
شماهیچ پارامتری نداری که از addparm استفاده کردی اون خط رو حذف کن.
در querystring باید نام متغیر ارسال شده را مشخص کنی Request.QueryString["id"]
دستور را در خود sql اجرا کن ببین خروجی میده یا نه
به جای * نام فیلد ها را بنویس.
به جای if از while استفاده کن.
البته همه به شرطی که connetion درسته باشه!