PDA

View Full Version : سوال: جستجو با فیلتر کردن BindingSource



reza_devel0per
پنج شنبه 03 اسفند 1391, 20:38 عصر
سلام...

من یک DataGridView رو از طریق BindingSource به دیتابیس وصل کردم و برای جستجو از فیلتر کردن BindingSource استفاده می کنم.
تنها مشکل من اینه که در جستجو هایی که می خوام از عبارت Like به جای تساوی استفاده کنم، حروف ی و ک رو نمیشناسه! دلیلشم اینه که نمیشه از N قبل از مقدار جستجو استفاده کرد. یعنی نمیشه گفت :
bns.Filter = "name like N'%" + textBox1.Text + "%'";



لطفا راه حل این موضوع رو اگر میدونید بهم بگید.
با سپاس فراوان

reza_devel0per
شنبه 05 اسفند 1391, 10:31 صبح
کسی می دونه اون کاراکتر N كه توی دستور SQL استفاده می کنیم، دقیقاً چی کار میکنه؟!

Mahmoud.Afrad
شنبه 05 اسفند 1391, 12:03 عصر
ابتدا حتما collation دیتابیس را روی Persian_100_CI_AI قرار بدید.
هنگام ثبت در دیتابیس مطمئن بشید داده ها فارسی ثبت میشوند.
برای این کار میتونید در برنامه از متد replace استفاده کنید. مثال:

string strName = textBox1.Text.Replace('ي', 'ی').Replace('ك', 'ک').Replace('ة', 'ه');
this.tblTableAdapter.Insert(strName);

اگر هم از استوپروسیجر برای ثبت استفاده میکنید داخل استورپروسیجر باید داده را اصلاح و بعد ثبت کرد:

set @p = Replace(@p , 'ي' , N'ی')
set @p = Replace(@p , 'ك' , N'ک')
set @p = Replace(@p , 'ة' , N'ه')
insert into tbl(name) values(@p)
@p پارامتر ورودی استورپروسیجر است.

reza_devel0per
شنبه 05 اسفند 1391, 14:15 عصر
ممنونم :)
فقط ، شما فرمودید :

ابتدا حتما collation دیتابیس را روی Persian_100_Cl_Al قرار بدید.

انواع Persian كه در قسمت Collation وجود داره، چه فرقی با هم دارن؟ اگه ممکنه یه توضیحی بدید یا یه منبع معرفی کنید که خودم مطالعه کنم.
ممنون :)

Mahmoud.Afrad
شنبه 05 اسفند 1391, 17:56 عصر
CaseSensitivity
CI specifies case-insensitive : بدون حساسیت به بزرگی و کوچکی حروف
CS specifies case-sensitive : حساس به بزرگی و کوچکی حروف


AccentSensitivity
AI specifies accent-insensitive : بدون حساسیت به حرکت(صدا) روی حروف (صدا شامل َ ِ ُ ّ)
AS specifies accent-sensitive : حساس به حرکت(صدا) روی حروف

زبان فارسی sensitive نیست پس بهترین گزینه همان CI_AI هست

http://msdn.microsoft.com/en-us/library/ms143726.aspx
http://msdn.microsoft.com/en-us/library/ms188046.aspx