PDA

View Full Version : جستجوی کلمات ی دار



وشتی حاتمی
دوشنبه 15 بهمن 1386, 14:30 عصر
وقتی با دستورات sql کلمه ای رو که "ی " داره select می کنم هیچ مقداری رو بر نمی گردونه
مشکلش تو "ی" فارسی هست وقتی با کلمه رو با "ی " عربی می نویسم درست جواب می ده
در vb کلمه ای که "ی" داشت در قسمت کد با "ی" عربی replace می کنی درست می شه
در c# باید چه کرد؟

raravaice
دوشنبه 15 بهمن 1386, 15:05 عصر
احیانا همان Replace در #C هم موثر است.

یه مراجعه ای به منابع سایت بفرمایید.

http://barnamenevis.org/forum/showthread.php?t=93078

موفق باشید

وشتی حاتمی
دوشنبه 15 بهمن 1386, 15:26 عصر
نه این کد در vb جواب می ده نه در c#

raravaice
دوشنبه 15 بهمن 1386, 15:47 عصر
100% همینطوره که شما میفرمایید.



protected void Page_Load(object sender, EventArgs e)
{
string a;
a = "ینال نیا ک سی ";
a = a.Replace(chrw(1610), chrw(1740));
a = a.Replace(chrw(1603), chrw(1705));

}

private int ascw(char a)
{
int b = a;
return b;

}
private char chrw(int a)
{
char b = (char)a;
return b;

}

hassan razavi
دوشنبه 15 بهمن 1386, 15:50 عصر
استفاده از N در شرطتون رو هم امتحان کنید


where id =N'...'

sepide1
سه شنبه 16 بهمن 1386, 22:20 عصر
اگر از access استفاده می کنی باید داخل برنامه ای که ساختی یک insert درست کنی و بعد اطلاعاتی را که می خواهی از بانک بخوانی از آنجا وارد کنی (یعنی مستقیما داخل access ننویس)
اگر از sqlserver استفاده می کنی از قسمت data type گزینه های را که با N شروع می شوند را انتخاب کن مثل nvarchr

وشتی حاتمی
سه شنبه 16 بهمن 1386, 22:47 عصر
sepide1 عزیز تمام datatype ها n... تعریف شده اند اما این چاره کار نیست....

raravaice
چهارشنبه 17 بهمن 1386, 12:32 عصر
وقتی با دستورات sql کلمه ای رو که "ی " داره select می کنم هیچ مقداری رو بر نمی گردونه
مشکلش تو "ی" فارسی هست وقتی با کلمه رو با "ی " عربی می نویسم درست جواب می ده
در vb کلمه ای که "ی" داشت در قسمت کد با "ی" عربی replace می کنی درست می شه
در c# باید چه کرد؟


این مشکل با "ک" هم بوجود میاد و اگر با replace مسئله حل میشه پست 4 مشکل رو حل میکنه 100%

موفق باشید

sepide1
چهارشنبه 17 بهمن 1386, 19:06 عصر
میشه اون قسمت از سورست را نشون بدی

raravaice
چهارشنبه 17 بهمن 1386, 19:17 عصر
میشه اون قسمت از سورست را نشون بدی


تبریک من بابت ورود شما.
یه نقل قول بکار ببرید که مخاطب مشخص بشه

موفق باشید

xxxxxxxxxx
چهارشنبه 17 بهمن 1386, 23:23 عصر
سلام. من شبیه همین مشکل را داشتم . اول اینکه حرفهای ک و ی راجستجو نمی کرد ولی با جایگزین کردن فایل KBDFA.DLL جدید در مسیر SYSTEM32 و system32\dllcache (البته دومی را باید تایپ کنی) مشکل کمی حل می شود یعنی ازاین به بعد درست ورود اطلاعات داری واطلاعات جدید را هم دست جستجو می کند وقبلیها رو هم باید آن دوحرف را اصلاح کنی برای اینکار راحلی که بلد بودم این بودکه در Query Analyzer اسکوال کد های زیر رااجرا کردم البته اگه کمی گیر داشت خودت کمی دستگاریش کن. درضمن این کد رافقظ برای حرف ک نوشته شده برای ی نیز همین کد راتکرار کن فقط بجای ی ک بگذار


go
DECLARE @name_t Nvarchar(125), @name_f Nvarchar(125)
Declare @SQL Nvarchar(1000)
DECLARE Name_T
CURSOR FOR SELECT [name] FROM [sysobjects] where xtype='U' ORDER BY [name]
OPEN Name_T
-- اجرای اولین فیچ وقراردادن آن دریک متغیر
FETCH NEXT FROM Name_T INTO @name_t
--set @nt =1
-- کنترل تعداد فیچهای باقیمانده برای پایان دادن به حلقه
WHILE @@FETCH_STATUS = 0
BEGIN

DECLARE Name_F CURSOR FOR
SELECT [name] from syscolumns where type_name(xusertype)<>'int' and type_name(xusertype)<>'image' and object_name(id)=@name_t
OPEN Name_F
FETCH NEXT FROM Name_F INTO @name_f
WHILE @@FETCH_STATUS = 0
BEGIN
--select @@CURSOR_ROWS
--UPDATE @name_t SET @name_f = replace (@name_f,'ک','ک')
set @SQL= ' UPDATE ' + @name_t + ' SET ' + @name_f +' = replace ( ' + @name_f + ',''ک'',''ک'')'

EXEC sp_executesql @sql
print (@SQL)
FETCH NEXT FROM Name_F INTO @name_f
END
FETCH NEXT FROM Name_F INTO @name_f
CLOSE Name_F
DEALLOCATE Name_F
-- This is executed as long as the previous fetch succeeds.
FETCH NEXT FROM Name_T INTO @name_t
END
CLOSE Name_T
DEALLOCATE Name_T
GO

وشتی حاتمی
پنج شنبه 18 بهمن 1386, 22:53 عصر
هیچ کدوم از راه حل هایی که دوستان اشاره کرده بودن درست نبود