PDA

View Full Version : مبتدی: select کردن داده های فارسی



ayda.eslami
پنج شنبه 27 آبان 1389, 20:33 عصر
سلام خسته نباشین.....
من داده های دیتابیسم رو فارسی وارد کردم!
اما الان روی select بهم جواب نمی ده!چه کنم؟؟؟؟؟؟

hadi-z
پنج شنبه 27 آبان 1389, 20:54 عصر
سلام خسته نباشین.....
من داده های دیتابیسم رو فارسی وارد کردم!
اما الان روی select بهم جواب نمی ده!چه کنم؟؟؟؟؟؟

سلام
اینکه داده های db رو فارسی وارد کنید باعث مشکل نمیشه
احتمالا دستور select تون اشتباهه.

ayda.eslami
پنج شنبه 27 آبان 1389, 20:57 عصر
سلام!
selectام که چیز خاصی نیس!
من عین کدی رو که توی c# می زنم رو توی sql هم می زنم جواب بهم نمی ده!
یعنی روی داده های انگلیسی جواب می ده !اما فارسی رو جواب نمی دههههههه

cjNet
پنج شنبه 27 آبان 1389, 21:01 عصر
کدتو با دستور sql بذار شاید بتونیم بهت کمک کنیم .

ayda.eslami
پنج شنبه 27 آبان 1389, 21:09 عصر
SqlConnection sc = new SqlConnection(Class1.constr);
SqlDataAdapter da = new SqlDataAdapter();
DataSet1 ds = new DataSet1();

da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = sc;
da.SelectCommand.CommandText = "select * from buyer where Family_Buyer ='"+ textBox2.Text
+"'";

da.SelectCommand.CommandType = CommandType.Text;

da.Fill(ds.Buyer);

dataGridView1.DataSource = ds.Buyer;

hadi-z
پنج شنبه 27 آبان 1389, 21:25 عصر
احیانا" کلمه ای که جستجو میکنید کاراکتر "ی" یا "ا" یا "و" و یا ...... نداره؟


آخه برای این حروف، حرفهای مشابهی برای ما ایرانی ها وجود داره که کد اسکی اونا متفاوته.

ayda.eslami
پنج شنبه 27 آبان 1389, 21:32 عصر
چرااااا!!!من خواستم "اسلامی" رو جستجو کنم!
چه کنم؟

hadi-z
پنج شنبه 27 آبان 1389, 21:41 عصر
برای اینکه مطمئن بشید که کاراکتر ورودی و کاراکتر موجود تو db یکی هستن بهتره که کلمه "اسلامی" رو از فیلد موجود تو db کپی کنید و بعد اون رو عینا تو ورودی برنامه قرار بدید تا دنبال همون کلمه بگرده.

ayda.eslami
پنج شنبه 27 آبان 1389, 21:44 عصر
خوب این اسم رو من این جا خودم دستی دادم!
اما اسم رو در اصل کاربرمی دههههه!!!!!!!!!
تو زحمت هم افتادیییین

hadi-z
پنج شنبه 27 آبان 1389, 21:46 عصر
خوب این اسم رو من این جا خودم دستی دادم!
اما اسم رو در اصل کاربرمی دههههه!!!!!!!!!
تو زحمت هم افتادیییین
حالا بگید جواب داد یا نه؟

البته این اتفاق خیلی به ندرت می افته
چون مثلا کمتر کاربری به جای کاراکتر "ی" از "ي" استفاده میکنه

cjNet
پنج شنبه 27 آبان 1389, 21:54 عصر
از کلاس SqlParameter استفاده کن شاید مشکلت حل بشه .
این کلاس پارامترهایی رو که قراره در دستور sql یا همون CommandText کلاس SqlCommand استفاده بشه رو دریافت می کنه و خودش به صورت پویا آنها را در دستور sql جایگزین میکند .
من که همیشه از این کلاس توی برنامه هام استفاده می کنم هم امنیت برنامه رو بالا می بره هم با این مشکلی که شما برخورد کرد ه اید تا حالا برخورد نکردم .
یک نمونه کد برات می زارم اون رو متناسب با برنامه ات تغییر بده و استفاده کن . امیدوارم مشکلت حل بشه ...

کد :


da.SelectCommand.CommandText = "select * from buyer where Family_Buyer =@family";
SqlParameter sqlParam=new SqlParameter("@family",Textbox2.text);
da.SelectCommand.Parameters.Add(sqlParam);

behnam-s
پنج شنبه 27 آبان 1389, 22:09 عصر
پاسخ بالا درسته فقط یه تغییر کوچیک مشکلو کاملا حل می کنه. نوع پارامتر در انواع SqlDbType مشخص بشه
مثلا:

mySqlCommand.Parameters.Add("family",SqlDbType.NVarchar).Value=textbox1.text
مهمه مه نوع داده از نوع N تعیین بشه مثل : NVarchar , Nchar
تو روش بدون پارامترم می تونی بصورت زیر عمل کنی

select * from tbl where ( Family=N'"+textbox1.text+"')

اگه غلط املایی داشت به بزرگی خودتون ببخشید. ولی روش درسته مطمئن باشید

hi level hdd
جمعه 28 آبان 1389, 21:05 عصر
سلام برای جستجوهای فارسی در sql کافیه از دستور زیر استفاده کنید
''N بین تک کوتیشن هر چی که بنویسی میشناسه

ayda.eslami
یک شنبه 30 آبان 1389, 22:18 عصر
دست گل همتون درد نکنهههههه
شد!!!!خدا خیر در دنیا و عاقبت دهدددددد