View Full Version : مشکل جستجو در database حروف ی و پ
vahidvb
جمعه 03 مهر 1388, 14:33 عصر
SELECT * FROM [TblTopics] WHERE (([Text] LIKE '%' + @Text + '%') OR ([Caption] LIKE '%' + @Caption + '%'))
حروفی که ی و پ دارند مثل هواپیما رو پیدا نمیکنه !!!
nazaninam
جمعه 03 مهر 1388, 15:16 عصر
مشکل از حروف "و-ک-ی" هست
دوست عزیز در این مورد بارها صحبت شده
شما چند راه دارید
1- این حروف را در Business Logic اصلاح کرده و سپس وارد دیتایس کنید و در هنگام واکشی هم دوباره اصلاح انجام بدهید :
public string RepairArabicChar(string Contents)
{
Contents = Contents.Replace("ی", "ي").Replace("ک", "ك").Replace("و", "و");
return Contents;
}
راه دوم اینکه در توسط یک تابع جاوا اسکریپت در هنگام ورود داده ها این کار را انجام بدهید
روش سوم هم اینه که تابع در SQL Server بنویسید و در هر SP مقادیر را جایگزین کنید
بنده از روش اول استفاده می کنم ، خیلی از دوستان هم روش سوم و برخی روش اول را در پیش میگیرند
موفق و پیروز باشید
vahidvb
جمعه 03 مهر 1388, 16:34 عصر
مشکل از حروف "و-ک-ی" هست
دوست عزیز در این مورد بارها صحبت شده
شما چند راه دارید
1- این حروف را در Business Logic اصلاح کرده و سپس وارد دیتایس کنید و در هنگام واکشی هم دوباره اصلاح انجام بدهید :
public string RepairArabicChar(string Contents)
{
Contents = Contents.Replace("ی", "ي").Replace("ک", "ك").Replace("و", "و");
return Contents;
}
راه دوم اینکه در توسط یک تابع جاوا اسکریپت در هنگام ورود داده ها این کار را انجام بدهید
روش سوم هم اینه که تابع در SQL Server بنویسید و در هر SP مقادیر را جایگزین کنید
بنده از روش اول استفاده می کنم ، خیلی از دوستان هم روش سوم و برخی روش اول را در پیش میگیرند
موفق و پیروز باشید
دوست عزیز دم شما گرم :بوس:
در مورد این که میگید دوست عزیز در این مورد بارها صحبت شده ، من تو سایت سرچ کردم اما جوابی نگرفتم
vahidvb
شنبه 04 مهر 1388, 11:31 صبح
روش سوم هم اینه که تابع در SQL Server بنویسید و در هر SP مقادیر را جایگزین کنید
دوستان عزیز من میتونید روش سوم رو بیشتر توضیح بدید ؟؟؟ :لبخندساده:
vahidvb
شنبه 04 مهر 1388, 23:20 عصر
کسی نیست جواب بده ؟؟؟ :قلب:
nazaninam
یک شنبه 05 مهر 1388, 08:19 صبح
یک تابع به صورت زیر میسازی :
Create FUNCTION [dbo].[RepainArabicChar]
(
@InputStr nvarchar(Max)
)
RETURNS nvarchar(Max)
AS
BEGIN
--
Set @InputStr=(SELECT Replace(@InputStr, N'ي',N'ی'));
Set @InputStr=(SELECT Replace(@InputStr, N'ك',N'ک'));
Set @InputStr=(SELECT Replace(@InputStr, N'و',N'و'));
Return @InputStr
END
بعد هر جا خواستی ازش استفاده می کنی :
select dbo.RepainArabicChar(N'علي')
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.