PDA

View Full Version : سوال: استفاده از دستور like(SQL) در برنامه



pedramfj
دوشنبه 29 آذر 1389, 11:01 صبح
سلام
چگونه می توانم از دستور like(SQl) در برنامه استفاده کنم????:متفکر:
تشکر...

taghi.km
دوشنبه 29 آذر 1389, 11:20 صبح
ببخشید منظورتون حالت خاصی هست کمی بیشتر توضیح بدید

hadi-z
دوشنبه 29 آذر 1389, 11:49 صبح
مثلا:


SELECT * FROM suppliers
WHERE supplier_name like 'Hew%';




SELECT * FROM suppliers
WHERE account_number like '12317_';
You might find that you are looking for an account number, but you only have 5 of the 6 digits. The example above, would retrieve potentially 10 records back (where the missing value could equal anything from 0 to 9). For example, it could return suppliers whose account numbers are:

123170
123171
123172
123173
123174
123175
123176
123177
123178
123179.

tooraj_azizi_1035
دوشنبه 29 آذر 1389, 12:39 عصر
سلام،
مرجع کامل: http://msdn.microsoft.com/en-us/library/ms179859.aspx

pedramfj
دوشنبه 29 آذر 1389, 15:32 عصر
دوستان ممنون...
ولی کمکی نکرد.
به مثال زیر توجه کنید .

SqlCommand com = new SqlCommand("SELECT lname FROM book where name='" + textBox1.Text + "'", con);
من با استفاده از این کد در فیلد موجود در بانک بر اساس نامی که کاربر در تکست باکس وارد می کند جستجو می کنم. و نتیجه را نمایش می دهم .
همان طور که میدانید دستور LIKE برای جستجو عبارتی (مثلا اولش با x شروع شده باشه یا آخرش x داشته باشه و یا از x استفاده شده باشد(در عبارت دیگر بکار می رود.
حالا می خواهم اطلاعاتی را نمایش دهم (با فرض اینکه حرف x در تکست باکس وارد شده باشد)که از حرف x در آن استفاده شده است.
تا دستور LIKE که ثابت است از آن به بعد را نمی دانم.:متفکر::متفکر::متفکر:

SqlCommand com = new SqlCommand("SELECT lname FROM book where name like ? , con);
تشکر....

tooraj_azizi_1035
دوشنبه 29 آذر 1389, 15:38 عصر
علامت % یک Wildcard به حساب می یاد که نشان دهنده "هر چیز" است. دستور شما:
WHERE name LIKE '%x%';
% قبل از x و بعد از x و LIKE جایگزین = می شود.
اگر لینک مایکروسافت رو بخونی متوجه می شی.

pedramfj
دوشنبه 29 آذر 1389, 15:49 عصر
علامت % یک Wildcard به حساب می یاد که نشان دهنده "هر چیز" است. دستور شما:
WHERE name LIKE '%x%';
% قبل از x و بعد از x و LIKE جایگزین = می شود.
اگر لینک مایکروسافت رو بخونی متوجه می شی.
دوست عزیز ممنون.
منظور شما کد زیر است.

SqlCommand com = new SqlCommand("SELECT lname FROM book where name like '%x%' , con);
جواب نمی دهد.

tooraj_azizi_1035
دوشنبه 29 آذر 1389, 16:08 عصر
سلام،
به جای x مقداری که میخوای رو بذار و مطمئن شو که مقداری که به دنبالش هستی حتماً تو جدول وجود داره. اگه محتویات جدولت کمه اونا رو بذار. Select خطا می ده یا چیزی بر نمی گردونه؟

behnam25214
دوشنبه 29 آذر 1389, 16:09 عصر
سلام دوست عزیز
دستور بالا رو اشتباه نوشتی که جواب نمیده چون فیلد lname رو Select کردی و بعدش هم شرط رو ، رو فیلد name اعمال کردی.
فقط کافیه که این name رو به lname تغییر بدی!

SqlCommand com = new SqlCommand("SELECT lname FROM book where lname like '%x%' , con);اینم یه نمونه که تمامی نامهایی که اولشون با m شروع میشه رو نشون میده.

select Fname from TblPer where Fname Like 'm%'

pedramfj
دوشنبه 29 آذر 1389, 16:18 عصر
سلام،
به جای x مقداری که میخوای رو بذار و مطمئن شو که مقداری که به دنبالش هستی حتماً تو جدول وجود داره. اگه محتویات جدولت کمه اونا رو بذار. Select خطا می ده یا چیزی بر نمی گردونه؟
چیزی بر نمی گردونه.

pedramfj
دوشنبه 29 آذر 1389, 16:23 عصر
سلام دوست عزیز
دستور بالا رو اشتباه نوشتی که جواب نمیده چون فیلد lname رو Select کردی و بعدش هم شرط رو ، رو فیلد name اعمال کردی.
فقط کافیه که این name رو به lname تغییر بدی!

SqlCommand com = new SqlCommand("SELECT lname FROM book where lname like '%x%' , con);اینم یه نمونه که تمامی نامهایی که اولشون با m شروع میشه رو نشون میده.

select Fname from TblPer where Fname Like 'm%'
دوست عزیز ممنون.
اگر توجه کرده باشید .می خواهم اطلاعاتی را نمایش دهم که حرف x در ان به کار رفته باشه.
منظور شما کد زیر است؟؟

SqlCommand com = new SqlCommand("SELECT name,lname FROM book where name like 'x%' , con);

devhandler
دوشنبه 29 آذر 1389, 16:31 عصر
اگه فیلدت مقادیر فارسی داره، اول شرط یه N اضافه کن:


SELECT * FROM Book WHERE lname LIKE N'%تست%'

pedramfj
دوشنبه 29 آذر 1389, 16:54 عصر
از همه دوستان ممنونم .
یه خواهش دارم .
اگر امکان داره کدی را بنویسید که بتوان در #C از آن استفاده کرد .
من می خواهم عبارت مورد جستجو را از textbox بگیرم و در کد جستجو قرار دهم.
دستور SQL که مشخصه , کد زیر

SELECT * FROM Book WHERE lname LIKE N'%تست%'
حالا من از این کد به چه شکل استفاده کنم؟؟

pedramfj
دوشنبه 29 آذر 1389, 17:14 عصر
با تشکر از همه دوستان...
این هم کدی که جستجو را انجام می دهد:

SqlCommand com = new SqlCommand("SELECT code FROM book where name LIKE N'%" + Convert.ToString(textBox1.Text) + "%'", con);

behnam25214
دوشنبه 29 آذر 1389, 21:22 عصر
دوست عزیز کدت مشکل خاصی نداره.

SqlCommand com = new SqlCommand("SELECT code FROM book where name LIKE N'%" + Convert.ToString(textBox1.Text) + "%'", con);به این صورت هم یه بار بنویس ببین جواب میده.


SqlCommand com = new SqlCommand("SELECT code FROM book where name LIKE N'%" + textBox1.Text+ "%'", con);میشه بگی در جواب اجرای این دستور چی نشون میده.چون من مشکل خاصی نمیبینم.