PDA

View Full Version : مشکل در جستجو با استفاده از LIKE



m_iman_e
شنبه 30 شهریور 1392, 07:45 صبح
با سلام به همه مهندسین عزیز

من برای جستجو از دستور زیر استفاده می کنم اما وقتی حرف (ی) یا یکسری دیگه از حروف را تایپ می کنم چیزی واسم پیدا نمی کنه
مثلا اگر دنبار اسم حمید بگردم حرئف حم را که تایپ می کننم پیداش میکنه اما وقتی حرف ی را تایپ می کنم دیگه چیزی بهم نشون نمیده
لطفا کمک کنید

"select * from ghasab WHERE name like'%" + textBoxX6.Text + "%' "

mosy_m.s
شنبه 30 شهریور 1392, 10:35 صبح
منم همچین مشکلی دارم.

a_ehsan68
شنبه 30 شهریور 1392, 11:13 صبح
سلام دوست عزیز.

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

مثلا چک کن ببین رکوردی که نام حمید رو میخوای جستجو کنی اشتباه تایپ نکردی.

m_iman_e
شنبه 30 شهریور 1392, 11:38 صبح
سلام دوست عزیز.

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

مثلا چک کن ببین رکوردی که نام حمید رو میخوای جستجو کنی اشتباه تایپ نکردی.

************************
دوست عزیز چک کردم مشکل تایپی نداره به خدا گیج شدم

veniz2008
شنبه 30 شهریور 1392, 13:24 عصر
با سلام به همه مهندسین عزیز

من برای جستجو از دستور زیر استفاده می کنم اما وقتی حرف (ی) یا یکسری دیگه از حروف را تایپ می کنم چیزی واسم پیدا نمی کنه
مثلا اگر دنبار اسم حمید بگردم حرئف حم را که تایپ می کننم پیداش میکنه اما وقتی حرف ی را تایپ می کنم دیگه چیزی بهم نشون نمیده
لطفا کمک کنید

سلام.
این مشکل بخاطر تفاوت بین حروف فارسی و عربی هست (کد اسکی متفاوت). حرف ي عربی دو نقطه پایینش هست ولی فارسی اینطور نیست. حرف ک عربی یه حمزه (شیش کوچیک) بالاش هست.
دلیل این مشکل اینه که در دیتابیس به یک شکل ذخیره کردی و الان در سمت برنامه به یک شکل دیگه براش میفرستی.
راه های زیادی داری. یکیش بحث پیشگیری هست که خیال خودت رو راحت میکنی.(در سمت sql این کار رو انجام می دید).
یکی هم بحث درمان هست!. میتونی در سمت سی شارپ وقتی کاراکترهای مورد جستجو رو میفرستید اونو به اون چیزی که در دیتابیس هست تبدیل کنی. یا حتی میتونی جدولت رو اینطور بروزرسانی کنی :

UPDATE MembersSET LastName = REPLACE(LastName, N'ي', N'ی')
این کد، حرف ي عربی رو به حرف ی فارسی تبدیل میکنه.