PDA

View Full Version : مشکل با دستور Like در query گرفتن از Access



uniservice
جمعه 28 خرداد 1389, 13:43 عصر
سلام
من با استفاده از C#‎‎‎ یه دیکشنری نوشتم که هم به فارسی و هم به انگلیسی ترجمه می کنه برنامه درشت کار میکنه فقط یه مشکل داره وقتی می خوام لغات فارسی رو با با Like جستجو کنم
لغات فارسی رو پیدا نمیکنه این هم کد جستجو هایی که تست کردم و ناقص کار کردن و بعضی ها هم کار نکردن:
یه دستور بی نقص می خواستم




strSQL = "select * from Farsi Where Farsi_Word LIKE '%" + Farsi_Word + "%'";
strSQL = "select * from Farsi Where Farsi_Word LIKE N'%" + Farsi_Word + "%'";


این یه ابزاره برای سایتم: www.tprogrammer.com
خودتون برید این دیکشنری رو چک کنید
من فکر کنم از این زبان عربی باشه که لغات گچ پژ رو پشتیبانی نمیکنه چون من حرف (ی) کلمه (راضي) رو با شیفت ط زدم درست کار کرد ولی با ی معمولی کار نکرد

war1351
شنبه 29 خرداد 1389, 09:53 صبح
دوست عزیز از توابع (LRIM(RTRIM) استفاده کنی درست میشه به این شکل


strSQL = "select * from Farsi Where LTRIM(RTRIM(Farsi_Word)) LIKE '%" + Farsi_Word.TRIM() + "%'"

mazoolagh
شنبه 29 خرداد 1389, 10:55 صبح
البته trim بتنهایی کار هر دو ltrim و rtrim رو انجام میده
-----------------
جالبه مثل اینکه سئوال پروژه درسی هست چون کاربر دیگه ای هم دقیقا همین مشکل رو داشت!

alirezabahrami
شنبه 29 خرداد 1389, 11:43 صبح
سلام
من با استفاده از C#‎‎‎‎ یه دیکشنری نوشتم که هم به فارسی و هم به انگلیسی ترجمه می کنه برنامه درشت کار میکنه فقط یه مشکل داره وقتی می خوام لغات فارسی رو با با Like جستجو کنم
لغات فارسی رو پیدا نمیکنه این هم کد جستجو هایی که تست کردم و ناقص کار کردن و بعضی ها هم کار نکردن:
یه دستور بی نقص می خواستم




strSQL = "select * from Farsi Where Farsi_Word LIKE '%" + Farsi_Word + "%'";
strSQL = "select * from Farsi Where Farsi_Word LIKE N'%" + Farsi_Word + "%'";


سلام
اگر ازاين كد در اكسس استفاده مي كنيد مسلمه كه جواب نمي گيري چرا كه در اكسس LIKE بدون علامت % ميباشد و اگر هم همين فرمول در محيط C#‎ استفاده ميكنيد علامت تك كوتيشن را بيرون از % قرار نده فكر مي كنم بايد آن را بعد از % قرار بدهيدمثل '%
موفق باشيد

wolfstander
شنبه 29 خرداد 1389, 15:19 عصر
مشکلی که دوستان دارند در اکسس دستور like به این صورت نوشته میشه
Like "*" & [Forms]![frmCorrectTelNumber]![txtFamilySearch] & "*"
به جای علامت % از علامت * استفاده میشه
به همین سادگی
امیدوارم که مشکل پروژه :چشمک: دوستان هم حل شده باشه

uniservice
سه شنبه 01 تیر 1389, 20:57 عصر
آقا از این همه لطفتون ممنون.
برای پست اول و دوم : من از نوع فیلد nvarchar استفاده کردم نیازی به ltrim اینا نیست و این هم یه پروژه درسی نیست این یه ابزار برای سایتمه www.tprogrammer.com (http://www.tprogrammer.com) برین تو سایت سمت راست زیر منوی اصلیه

برای پست سوم: من با استفاده از علامت % برای ترجمه لغات انگلیسی نتیجه می گیرم فقط برای فارسی جواب نمیده

پست آخر صبر کن تست کنم ...nn..m...???...nnn.nn.m..mn.???..~~~~~ آقا کار نکرد

public string Get_FaVerb()
{
string strSQL;
strSQL = "select * from Farsi Where Farsi_Word LIKE '*" + Farsi_Word + "*'";
return strSQL;
}
سایت منه برید خودتون دیکشنری رو ببینین www.tprogrammer.com (http://www.tprogrammer.com)
من فکر کنم از این زبان عربی باشه که لغات گچ پژ رو پشتیبانی نمیکنه چون من حرف (ی) کلمه (راضي) رو با شیفت ط زدم درست کار کرد ولی با ی معمولی کار نکرد

mamad_it
پنج شنبه 18 فروردین 1390, 14:37 عصر
سلام دستور ی که شما نوشتین حرف مشابه را در کل رشته ها بررسی می کند

مثلا شما فیادی دارید که

ali
alireza
mohmmad
mahmod
reza

اگر شما تایپ کنید r هم رای شما reza را می اورد هم alireza را برای اینکه فقط رضا را بیابد از دستور زیر استفاده کن.


"select * from person Where name LIKE '" + txtsearxh.Text.Trim() + "%'";

pc.base
یک شنبه 07 اردیبهشت 1393, 09:48 صبح
مشکلی که دوستان دارند در اکسس دستور like به این صورت نوشته میشه
Like "*" & [Forms]![frmCorrectTelNumber]![txtFamilySearch] & "*"
به جای علامت % از علامت * استفاده میشه
به همین سادگی
امیدوارم که مشکل پروژه :چشمک: دوستان هم حل شده باشه

-----------------------------------------------------------------------------
آقا ممنون منم مشکلم حل شد:تشویق:

itsoitso2
شنبه 21 شهریور 1394, 21:36 عصر
سلام اقا تورو خدا دقیق بگین چطور کد نوشتین؟ چنروزه بدجور درگیرشم اخری اینه
select * from bimar where name like '%" + name.Text.Trim() + "%'
ولی نمیاد از تکسباک هرچی رو تکه مشابه رشته تکسباکس رو پیدا کنه بلکه رشته دقیق مشابه تکسباکسو از بانکو پیدا میکنه.
مثلا تو تکس باک مینویسم s تو بانک اونایی که فقط s خالین رو پیدا میکنه.دیکه هرچی که شامل s باشه رو پیدا نمیکنه. از * هم بجای % استفاده کردم بیففایده بود :(((((((((
اقا توروخدا چوابمون بدین بدجور گیرمممنونم

itsoitso2
دوشنبه 23 شهریور 1394, 08:40 صبح
سلام اقا تورو خدا دقیق بگین چطور کد نوشتین؟ چنروزه بدجور درگیرشم اخری اینه
select * from bimar where name like '%" + name.Text.Trim() + "%'
ولی نمیاد از تکسباک هرچی رو تکه مشابه رشته تکسباکس رو پیدا کنه بلکه رشته دقیق مشابه تکسباکسو از بانکو پیدا میکنه.
مثلا تو تکس باک مینویسم s تو بانک اونایی که فقط s خالین رو پیدا میکنه.دیکه هرچی که شامل s باشه رو پیدا نمیکنه. از * هم بجای % استفاده کردم بیففایده بود :(((((((((
اقا توروخدا چوابمون بدین بدجور گیرمممنونم

Rasool-GH
دوشنبه 23 شهریور 1394, 19:03 عصر
سلام
در قسمت شرط کوئری این کد را قرار بدید


Like "*" & Forms!Form Name!Text Box Name & "*"

itsoitso2
سه شنبه 24 شهریور 1394, 19:40 عصر
سلام
در قسمت شرط کوئری این کد را قرار بدید


Like "*" & Forms!Form Name!Text Box Name & "*")
ارور میده :(
ستاره بدون دابل کوتیشن ایراد نمیگیره اما جوابم نمیده

itsoitso2
سه شنبه 24 شهریور 1394, 19:50 عصر
من این کدو زدم
"select * from bimar where name like '%"
+ name.Text.Trim()+"%' and family like '%"+family.Text+"%'"



اما وقتی میگم کلماتی رو جستجو کن که دارای s باشند، فقط اونایی رو که دقیقا s هستن را پیدا میکنه و کلماتی که s دارنو پیدا نمیکنه.
تورو خدا کمک کنین

Rasool-GH
سه شنبه 24 شهریور 1394, 19:54 عصر
بله اصلاح شد . پرانتز اضافه بود
اگه نمونه فایل بزارین خیلی زودتر به نتیجه میرسین

ایلیا آخوندزاده
شنبه 22 دی 1397, 23:36 عصر
من این کدو زدم
"select * from bimar where name like '%"
+ name.Text.Trim()+"%' and family like '%"+family.Text+"%'"



اما وقتی میگم کلماتی رو جستجو کن که دارای s باشند، فقط اونایی رو که دقیقا s هستن را پیدا میکنه و کلماتی که s دارنو پیدا نمیکنه.
تورو خدا کمک کنین

از N استفاده کنید به شکل زیر:

query = "select * from tbl where title like N'%" + textBox1.Text + "%'";