+1 امتیاز
سلام ، خسته نباشید، من چند بار سعی کردم سوالم ارسال کنم ولی متاسفانه نتونستم

برنامه ای نوشتم که موقع جستجوی عبارات فارسی مشکل دارم، توسط کمبو باکس موضوع جستجو انتخاب میشه و بعد عبارت مورد نظر در تکس باکس نوشته میشه و بعد از زدن دکمه جستجو نتایج در گرید ویو نمایش داده میشه، حالا مشکل من اینه که اگر عبارت واردشده عدد یا حروف انگلیسی باشه نتایج به درستی نمایش داده میشه ولی اگر عبارت فارسی وارد بشه هیچ نتیجه ای برگشت داده نمیشه، نمیدونم الان مشکل من در تنظیمات بانک اطلاعاتیه یا باید تنظیماتی را روی گرید ویو انجام بدم ، چون در نمایش نتایج عددی و انگلیسی مشکلی نیست پس قاعدتا کد باید درست باشه.

ممنون میشم کسی کمکم کنه بفهمم مشکل با عبارات فارسی چیه.
بسته شده

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

سلام.

ابتدا باید ببینید که اطلاعات فارسی به درستی در بانک اطلاعاتی ذخیره میشه یا نه چون امکان داره به شکل علامت سوال در بیاد، برای اطلاعات فارسی از نوع داده ای یونیکد استفاده کنید مثلا به جای varchar از nvarchar استفاده کنید.

اگر همه اینا رو رعایت کردین و نتیجه ای برگشت داده نمیشه قبل از مقدار فارسی برای سازگاری با یونیکد یک N قرار بدین.

SELECT * FROM Table1 WHERE Name = N'امیدوار'

 

N دقیقا باید قبل از تک کوتیشن باشه و نباید فاصله ای بینشون باشه یه نکته اینکه به جای N از n  نمیشه استفاده کرد.

از این query استفاده کنید ببینید جواب میگیرید؟

"select * from Reference_TB where name like N'%احمدی%'"

اگر خطا نگرفت تکست باکس رو به جای احمدی قرار بدین.

من بانک اطلاعاتی شما رو SQL Server در نظر گرفتم و اگر بانک اطلاعاتی شما SQL Server باشه دستوری که گفتم مشکلی نداره.

ویرایش شده توسط
توسط (2,595 امتیاز) 5 15 90

به این کد تغییر بدین

"select * from Reference_TB where name like N'%'" + textBoxX1.Text + "'%'"


 

توسط (741 امتیاز) 1 14 52
سوال جدید

2,337 سوال

2,871 پاسخ

3,725 دیدگاه

3,919 کاربر

دسته بندی ها

...