PDA

View Full Version : مشکل جستجو در database حروف ی و پ



vahidvb
جمعه 03 مهر 1388, 13:33 عصر
SELECT * FROM [TblTopics] WHERE (([Text] LIKE '%' + @Text + '%') OR ([Caption] LIKE '%' + @Caption + '%'))

حروفی که ی و پ دارند مثل هواپیما رو پیدا نمیکنه !!!

nazaninam
جمعه 03 مهر 1388, 14:16 عصر
مشکل از حروف "و-ک-ی" هست
دوست عزیز در این مورد بارها صحبت شده
شما چند راه دارید
1- این حروف را در Business Logic اصلاح کرده و سپس وارد دیتایس کنید و در هنگام واکشی هم دوباره اصلاح انجام بدهید :



public string RepairArabicChar(string Contents)
{
Contents = Contents.Replace("ی", "ي").Replace("ک", "ك").Replace("و", "و");
return Contents;
}


راه دوم اینکه در توسط یک تابع جاوا اسکریپت در هنگام ورود داده ها این کار را انجام بدهید
روش سوم هم اینه که تابع در SQL Server بنویسید و در هر SP مقادیر را جایگزین کنید

بنده از روش اول استفاده می کنم ، خیلی از دوستان هم روش سوم و برخی روش اول را در پیش میگیرند
موفق و پیروز باشید

vahidvb
جمعه 03 مهر 1388, 15:34 عصر
مشکل از حروف "و-ک-ی" هست
دوست عزیز در این مورد بارها صحبت شده
شما چند راه دارید
1- این حروف را در Business Logic اصلاح کرده و سپس وارد دیتایس کنید و در هنگام واکشی هم دوباره اصلاح انجام بدهید :



public string RepairArabicChar(string Contents)
{
Contents = Contents.Replace("ی", "ي").Replace("ک", "ك").Replace("و", "و");
return Contents;
}

راه دوم اینکه در توسط یک تابع جاوا اسکریپت در هنگام ورود داده ها این کار را انجام بدهید
روش سوم هم اینه که تابع در SQL Server بنویسید و در هر SP مقادیر را جایگزین کنید

بنده از روش اول استفاده می کنم ، خیلی از دوستان هم روش سوم و برخی روش اول را در پیش میگیرند
موفق و پیروز باشید

دوست عزیز دم شما گرم :بوس:
در مورد این که میگید دوست عزیز در این مورد بارها صحبت شده ، من تو سایت سرچ کردم اما جوابی نگرفتم

vahidvb
شنبه 04 مهر 1388, 10:31 صبح
روش سوم هم اینه که تابع در SQL Server بنویسید و در هر SP مقادیر را جایگزین کنید

دوستان عزیز من میتونید روش سوم رو بیشتر توضیح بدید ؟؟؟ :لبخندساده:

vahidvb
شنبه 04 مهر 1388, 22:20 عصر
کسی نیست جواب بده ؟؟؟ :قلب:

nazaninam
یک شنبه 05 مهر 1388, 07: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'علي')