PDA

View Full Version : کار با داده های فارسی



sina_761
پنج شنبه 31 اردیبهشت 1388, 16:11 عصر
سلام من در یکی از فیلد های یکی از جداولم یک داده فارسی دارم میخوام تو یه grid view با یه دستورselect مقایسه ای بین اون مقدار و یه مقدار دیگه انجام بدم اما چون داده من فارسیه نمیشه
مثلا بگم جایی که این فیلد برابر با مقدار "پزشکی" بود اونوقت select رو انجام بده
راهنماییم کنید ممنون میشم

a.maleki
پنج شنبه 31 اردیبهشت 1388, 19:06 عصر
سلام
دوست عزیز ممکنه کدی که استفاده می کنی در اینجا بنویسی تا بیشتر بشه در موردش بحث کرد

pesar irooni
جمعه 01 خرداد 1388, 00:46 صبح
اگه از داده های فارسی تو sql استفاده میکنی باید از نوع nvarchar استفاده کنی. توجه کن که از نوع n باشه. یعنی unicode. هنگام search تو داده ها تو sql هم باید قبل از مقدارت از N استفاده کنی تا unicode اعمال بشه.
مثلا
select * from myTable where myFiled = N'علی';

sina_761
جمعه 01 خرداد 1388, 12:42 عصر
سلام ازراهنمایتون ممنونم ولی نمیدونم چه کارکنم کهunicode بشه
ممنون میشم بیشتر راهنمایی کنید

N_D
جمعه 01 خرداد 1388, 15:38 عصر
رو همه کارکترهای فارسی مشکل داری یا بعضی هاشون؟
شامل ک ی
؟

adinochestva
جمعه 01 خرداد 1388, 16:13 عصر
سلام ازراهنمایتون ممنونم ولی نمیدونم چه کارکنم کهunicode بشه
ممنون میشم بیشتر راهنمایی کنید
type فیلد را از نوع n* انتخاب کن مثل nvarchar

Ahmad_VB
جمعه 01 خرداد 1388, 18:48 عصر
سلام
من این مشکل را خیلی وقت است که توی SQL داشتم و دارم
متاسفانه SQL از زبان فارسی به طور مستقیم پشتیبانی نمی کند و ما مجبوریم از حالت ها Arabic_Bin یا برخی موارد دیگر در زمان ساخت DB استفاده کنیم. (اگر اشتباه نکنم)

در کل برای ذخیره متون فارسی شکی نیست که باید از نوع رشته ای NVarChar در ساخت جداول استفاده کنیم. ولی خوب مشکلی که وجود دارد این است :
در فارسی حرف "ی" به صورت معمولی و بدون دونقطه زیر آن است که در زمان انتخاب زبان فارسی در ویندوز XP و ویستا صفحه روی کلید دکمه "D" آن را تایپ می کند.
اما حرف "ی" در عربی به صورت "ي" که دونقطه زیر آن قرار دارد نمایش و ذخیره می شود که SQL هم هر جا "ی" ببیند آن را "ي" ذخیره می کند.
حرف "ي" روی صفحه کلید های فارسی با "Shift + X" تایپ می شود.


--------------

خوب راه حل چیست ؟
من این راه را پیدا کرده ام :
معمولا زمانی که می خواهیم از دستورات Select در SQL استفاده کنیم خوب طبعا دیگر هر کلمه ای که در شرط Where شامل حرف "ی" باشد مطمئنا در SQL پیدا نخواهد شد !
پیشنهاد من : با استفاده از دستور زیر سعی کنید هر جا می خواهید یک رشته را درون SQL جستجو کنید کلیه کاراکتر های "ی" آن را به "ي" تبدیل کنید.



Dim S As String
S=TextSearch.Text
S = S.Replace("ي", "ی")


بعد این رشته را درون جستجوی خود مورد استفاده قرار دهید .

(تشکر یادتون نره)