PDA

View Full Version : با بودن حرفهای ک،ی،گ،پ،ژ جستجو نتیجه درستی نمی دهد



mustafa13
یک شنبه 13 اسفند 1391, 22:12 عصر
من برای جستجو در DB از دستور زیر برای پیدا کردن استفاده می کنم


select * from tblKala where NameKala like N'%ت%'

اینجا یه مشکلی هست اگه تو کلمات حرفهای ک،گ،ی,پ و ژ باشد نتیجه درستی نمی دهد÷

ali.bahrami
یک شنبه 13 اسفند 1391, 22:16 عصر
دوست عزیز اگر از Sql 2008 استفاده کنی میتونی کالکشن را برابر persian cs as ks ws قرار بدی. کاملا از فارسی پشتیبانی میکنه

mustafa13
یک شنبه 13 اسفند 1391, 22:38 عصر
ضمن تشکر نه از sql2005 استفاده می کنم

mortezasar
یک شنبه 13 اسفند 1391, 23:31 عصر
باید رشته رو به این شکل حروفش رو درست کنید

البته ای واسه حرف ی و ک هستش بقیه رو نمیدونم

str=textbox1.Text;
str = str.Replace("ك", "ک");
str = str.Replace("ي", "ی");

fakhravari
دوشنبه 14 اسفند 1391, 00:19 صبح
سمت SQL ببندید.
تابع replace در SQL موقع ثبت ویرایش و جستجو

mustafa13
دوشنبه 14 اسفند 1391, 06:07 صبح
سمت SQL ببندید.
تابع replace در SQL موقع ثبت ویرایش و جستجو

ممکن بیشتر توضیح بدین

fakhravari
دوشنبه 14 اسفند 1391, 11:03 صبح
CREATE PROCEDURE [dbo].[User_Insert]
(
@UserName nvarchar (50),
@Password nchar (10),
@Tell char (10),
@Sex bit,
@geogr geography,
@geom geometry,
@hiera hierarchyid
)
AS
INSERT INTO [User]
([Password], [Tell], [Sex], [geogr], [geom], [hiera], [UserName])
VALUES
(Replace(Replace(Replace(@Password , 'ي' , N'ی') , 'ك' , N'ک') , 'ة' , N'ه'), Replace(Replace(Replace(@Tell , 'ي' , N'ی') , 'ك' , N'ک') , 'ة' , N'ه'), @Sex, @geogr, @geom, @hiera, Replace(Replace(Replace(@UserName , 'ي' , N'ی') , 'ك' , N'ک') , 'ة' , N'ه'))

CREATE PROCEDURE [dbo].[User_Delete](@UserName nvarchar(50))
AS
DELETE FROM [User] WHERE UserName = Replace(Replace(Replace(@UserName , 'ي' , N'ی') , 'ك' , N'ک') , 'ة' , N'ه')
CREATE PROCEDURE [dbo].[User_SelectByUserName](@UserName nvarchar(50))
AS
SELECT
[UserName], [Password], [Tell], [Sex], [geogr], [geom], [hiera]
FROM [User] WHERE UserName = Replace(Replace(Replace(@UserName , 'ي' , N'ی') , 'ك' , N'ک') , 'ة' , N'ه')
CREATE PROCEDURE [dbo].[User_Update]
(
@UserName nvarchar (50),
@Password nchar (10),
@Tell char (10),
@Sex bit,
@geogr geography,
@geom geometry,
@hiera hierarchyid
)
AS
UPDATE [User] SET
[Password] = Replace(Replace(Replace(@Password , 'ي' , N'ی') , 'ك' , N'ک') , 'ة' , N'ه'), [Tell] = Replace(Replace(Replace(@Tell , 'ي' , N'ی') , 'ك' , N'ک') , 'ة' , N'ه'), [Sex] = @Sex, [geogr] = @geogr,
[geom] = @geom, [hiera] = @hiera
WHERE UserName = Replace(Replace(Replace(@UserName , 'ي' , N'ی') , 'ك' , N'ک') , 'ة' , N'ه')

SHD.NET
دوشنبه 14 اسفند 1391, 14:17 عصر
سلام
یکی از آسون ترین راه ها اینه که قبل از جستجو کاراکتر ها رو تبدیل کنید به کاراکتر های قابل جستجو:
text1.Text = textbox1.Text.Replace("ك", "ک").Replace("ي", "ی").Replace("ﯼ", "ی").Replace("ى", "ی").Replace("ة", "ه");

**موفق باشید**

mustafa13
دوشنبه 14 اسفند 1391, 19:24 عصر
سلام
یکی از آسون ترین راه ها اینه که قبل از جستجو کاراکتر ها رو تبدیل کنید به کاراکتر های قابل جستجو:
text1.Text = textbox1.Text.Replace("ك", "ک").Replace("ي", "ی").Replace("ﯼ", "ی").Replace("ى", "ی").Replace("ة", "ه");

**موفق باشید**

یه مشکلی هست پس از replace به اول textBox می رود

fakhravari
دوشنبه 14 اسفند 1391, 20:29 عصر
چرا کد های خودمون شلوغ کنیم.
همه چی ببریم روی select ها

sajad.net
چهارشنبه 16 اسفند 1391, 00:58 صبح
این کالکشن کجاست
که تغییرش بدیم
و از کجا بدونم sql 2008 یا 2005