View Full Version : سوال: سرچ کردن داده های Unicode در SQL
pesare
شنبه 25 خرداد 1392, 17:32 عصر
سلام دوستان
من یه DataBase دارم که دادهام رو بصورت Unicode درونش ذخیره میکنم اما موقع سرچ حرف "ی" رو پشتیبانی نمیکنه , کدم هم اینه
string sql = "Select * From ApFroshi Where {0} LIKE '{1}%' ORDER BY {2} ASC";
sql = string.Format(sql,this.SearchItem,this.SearchValue ,this.SearchItem);
ali_md110
شنبه 25 خرداد 1392, 20:10 عصر
سلام میتونید یک تابع اسکیول بنویسید با استفاده از دستورات Replace و حرف ی عربی رو به حرف ی فارسی تبدیل کنید و درون دیتابیس ذخیره کنید
یا تابعی بنویسید که کاراکترهای عربی را در هنگام سرچ به کاراکتر فارسی تبدیل کند معمولا حروف ی و ک مشکل دارند
یا میتونید یک تابع CLR بنویسید و درون دستور SQL استفاده کتید
من معمولا از توابع CLR استفاده میکنم
این هم مثال:
public static SqlString ToPersian(SqlString str)
{
SqlString character;
character = str.ToString().Replace("یي", "یی");
character = str.ToString().Replace("ي", "ی");
// ' SQLstr = SQLstr.ToString.Replace(ChrW(1610), ChrW(1740))
//'SQLstr = SQLstr.ToString.Replace("ی", "یي")
// ' SQLstr = SQLstr.ToString.Replace("ك", "ک")
character = str.ToString().Replace("ك", "ک");
// 'SQLstr = SQLstr.ToString.Replace(ChrW(1603), ChrW(1705))
character = str.ToString().Replace("کك", "کک");
return character.ToString().Trim();
}
طریقه استفاده در دستور اسکیول
SELECT dbo.ToPersian(نام فبلدتون) as نام مستعار
راهنمایی درباره CLR
http://barnamenevis.org/showthread.php?401889
pesare
یک شنبه 26 خرداد 1392, 09:26 صبح
من اینجوری نوشتم درست شد
string sql = "Select * From ApFroshi Where {0} LIKE N'{1}%' ORDER BY {2} ASC";
sql = string.Format(sql,this.SearchItem,this.SearchValue ,this.SearchItem);
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.