PDA

View Full Version : جستجوی پویا



Jean Reno
چهارشنبه 28 مرداد 1388, 11:05 صبح
با سلام
من از عملگر LIKE در دستور SQL استفاده کردم
می خوام دستورم بصورت پارامتری باشه یعنی مستقیما از خود textbox در دستور SQL استفاده نکنم
مثل کد زیر :



"SELECT * FROM doctor WHERE Doctor_ID like '%" + textbox1.Text + "%'"



از دستور زیر استفاده می کنم اما نتیجه ای که می ده تموم رکوردها رو بهم برمی گردونه
کد زیر رو چه طور اصلاح کنم که هم پارامتری بمونه و هم این که نتیجه جستجو رو درست بده




"select * from doctor where Doctor_ID Like '%'+ @Doctor_ID + '%' "

Jean Reno
پنج شنبه 29 مرداد 1388, 23:05 عصر
بابا یکی لااقل جواب بده

raha_20
جمعه 30 مرداد 1388, 01:05 صبح
این @doctor _id به چه ابجکتی ارتباط داده شده . شما باید text box را به @Doctor_ID به صورت پارامتر نسبت بدی وبعد ازان استفاده کنی

mn_zandy63
جمعه 30 مرداد 1388, 01:31 صبح
"select * from doctor where Doctor_ID Like '%'+ @Doctor_ID + '%' "



Query بالا درسته٬ مشکلی نباید وجود داشته باشه.
ببین اصلا مقدار پارامتر رو set میکنی؟ اگه همه رو برمیگردونه شاید به این خاطره که پارامتر درست set نمیشه٬ Query ت میشه این:

select * from doctor where Doctor_ID Like '%%'
همه رو برمیگردونه.

Jean Reno
جمعه 30 مرداد 1388, 07:48 صبح
این @doctor _id به چه ابجکتی ارتباط داده شده . شما باید text box را به @Doctor_ID به صورت پارامتر نسبت بدی وبعد ازان استفاده کنی

اگر پارامتر رو set نکنم که اصلا کاملا خطا می ده من کد قسمت set کردن رو دیگه توی سوالم درج نکردم چون یه چیز بدیهی بود که باید پارامتر set می شد
در هر صورت ممنون از پاسختون
کد من بصورت زیره :




string search_str = "select * from doctor where Doctor_ID Like '%'+ @Doctor_ID + '%' ";


SqlCommand search_comm = new SqlCommand();
search_comm.CommandText = search_str;
search_comm.Parameters.AddWithValue("@Doctor_ID", textBox1.Text.Trim());

raha_20
جمعه 30 مرداد 1388, 11:22 صبح
"select * from doctor where Doctor_ID Like '%'+ @Doctor_ID + '%' "

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

raha_20
جمعه 30 مرداد 1388, 12:01 عصر
adap.SelectCommand = new SqlCommand();
adap.SelectCommand.Parameters.AddWithValue("@m_code", txtSearch.Text.Trim());
adap.SelectCommand.CommandText="SELECT * FROM tbl_member WHERE m_code LIKE '%'+ @m_code + '%'";

adap.SelectCommand.Connection = con;
adap.SelectCommand.CommandType = CommandType.Text;
con.Open();
dataset1.Tables[0].Clear();
adap.Fill(dataset1, "tbl_memberEdit");
con.Close();



ببین این یه نمونه که کاملا جواب میده . من فکر کنم مشکل شما اینجا باشه که فقط Data adapter رو پر می کنید .در صورتی که اول باید اون را خالی کنید تا اطلاعات قبلی پاک شودو بعد اطلاعات جدید که شامل رکورد موردنظر شما هست داخل او ن قرار بگیره

Reza_Yarahmadi
جمعه 30 مرداد 1388, 18:47 عصر
یه راه هم اینه که Set کردن پارامتر و اصلاح کنی
در این حالت دستور جستجو بصورت

select * from doctor where Doctor_ID Like @Doctor_ID
و Set کردن پارامتر بصورت زیر میشه

da.SelectCommand.Parameters.AddWithValue("@Doctor_ID", "%" + textBox1.Text.Trim() + "%");