سلام خسته نباشین.....
من داده های دیتابیسم رو فارسی وارد کردم!
اما الان روی select بهم جواب نمی ده!چه کنم؟؟؟؟؟؟
سلام خسته نباشین.....
من داده های دیتابیسم رو فارسی وارد کردم!
اما الان روی select بهم جواب نمی ده!چه کنم؟؟؟؟؟؟
سلام!
selectام که چیز خاصی نیس!
من عین کدی رو که توی C# می زنم رو توی sql هم می زنم جواب بهم نمی ده!
یعنی روی داده های انگلیسی جواب می ده !اما فارسی رو جواب نمی دههههههه
کدتو با دستور sql بذار شاید بتونیم بهت کمک کنیم .
SqlConnection sc = newSqlConnection(Class1.constr);
SqlDataAdapter da = newSqlDataAdapter();
DataSet1 ds = newDataSet1();
da.SelectCommand = newSqlCommand();
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;
احیانا" کلمه ای که جستجو میکنید کاراکتر "ی" یا "ا" یا "و" و یا ...... نداره؟
آخه برای این حروف، حرفهای مشابهی برای ما ایرانی ها وجود داره که کد اسکی اونا متفاوته.
چرااااا!!!من خواستم "اسلامی" رو جستجو کنم!
چه کنم؟
برای اینکه مطمئن بشید که کاراکتر ورودی و کاراکتر موجود تو db یکی هستن بهتره که کلمه "اسلامی" رو از فیلد موجود تو db کپی کنید و بعد اون رو عینا تو ورودی برنامه قرار بدید تا دنبال همون کلمه بگرده.
خوب این اسم رو من این جا خودم دستی دادم!
اما اسم رو در اصل کاربرمی دههههه!!!!!!!!!
تو زحمت هم افتادیییین
از کلاس 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);
پاسخ بالا درسته فقط یه تغییر کوچیک مشکلو کاملا حل می کنه. نوع پارامتر در انواع SqlDbType مشخص بشه
مثلا:
mySqlCommand.Parameters.Add("family",SqlDbType.NVa rchar).Value=textbox1.text
مهمه مه نوع داده از نوع N تعیین بشه مثل : NVarchar , Nchar
تو روش بدون پارامترم می تونی بصورت زیر عمل کنی
select * from tbl where ( Family=N'"+textbox1.text+"')
اگه غلط املایی داشت به بزرگی خودتون ببخشید. ولی روش درسته مطمئن باشید
سلام برای جستجوهای فارسی در sql کافیه از دستور زیر استفاده کنید
''N بین تک کوتیشن هر چی که بنویسی میشناسه
دست گل همتون درد نکنهههههه
شد!!!!خدا خیر در دنیا و عاقبت دهدددددد