السلام عليكم
عندي مشكله في البحث في قاعدة بياتات MySQL عندما ابحث عن بياتات بالعربي حيث اني استخدم C# للاتصال بقاعدة البياتات وانا اعمل برنامج على visual studio2012 حيث اني انشات قاعدت البياتات من نفس البرنامج Microsoft SQL Server
في احد الجداول لدي حقل custoures_name الاسم غالبا يكون بالعربي وعندما ابحث لا تظهر النتيجه ما العلم ان عندما ابحث بالانجليزي تظهر التنيجه صحيحه ايضا لدي بحث برقم الجوال ورقم العميل يعملان بشكل ممتاز من دون اي اخطا مجرد اني لما ابحث عن اي بيانات باللغه العربيه لا يظهر اي نتائج
ملاحضه انا متاكد من الاكواد وصحتها حيث ان اكثر من برنامج عملته وتقريبا استخدم نفس الاكود حيث اني قد انشات كلاس يحتوي على اكواد الاتصال والبحث ودوال اخرى
هذا نسخه من اهم الدوال الموجوده في الكلاس والتي يدور سوالي حوله وايضا الكود الموجود تحت زر بحث
اتمنى ان اجد جواب باسرع وقت ممكن
تقبلو تحياتي :)
{ class database { SqlConnection con = new SqlConnection(); SqlConnection conn = new SqlConnection(); SqlCommand cmd = new SqlCommand(); DataTable tb; public database() { } private void datbaseconnect() { conn.ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename= |DataDirectory|DBproject.mdf;Integrated Security=True"; cmd.Connection = conn; } private bool executd() { bool execut; conn.Open(); try{ int i = cmd.ExecuteNonQuery(); if (i > 0) execut = true; else execut = false; } catch{ execut = false; } conn.Close(); return execut; } public bool search(string tabname, string[] selectFrom, string[] values) { tb = null; tb = search(tabname, selectFrom, values,0); if (tb.Rows.Count > 0) return true; else return false; } public DataTable search(string tabname, string[] selectFrom, string[] values, int s = 0) { string selectT = "select * from [" + tabname; if (selectFrom[0] == "" && values[0] == "") { selectT += "]"; } else { selectT += "] where "; int len = selectFrom.Length - 1; for (int i = 0; i < selectFrom.Length; i++) { if (s == 0) { if (i != len) { selectT += selectFrom + "='{" + i + "}' and "; } else { selectT += selectFrom + "='{" + i + "}' "; } } else { if (i != len) { selectT += selectFrom + " like'%{" + i + "}%' or "; } else { selectT += selectFrom + " like '%{" + i + "}%' "; } } } } datbaseconnect(); cmd.CommandText = String.Format(selectT, values); // tb = null; DataTable tba = executeReaders(); return tba; } private DataTable executeReaders() { conn.Open(); tb = new DataTable(); tb.Load(cmd.ExecuteReader()); conn.Close(); return tb; } private bool executeReaders(int i) { tb = new DataTable(); tb = executeReaders(); if (tb.Rows.Count > 0) return true; else return false; } public DataTable search(string s,int i) { SqlDataAdapter sda = new SqlDataAdapter("", con); string sel; if (i==1) { sel="select * from customers where CName like % [0] % "; } else if (i == 3) { sel = "select * from customers where sellN like % [0] % or phone like %[0]% "; } else if (i == 2) { sel = "select * from customers where Id like %[0] % "; } // sda.SelectCommand =String.Format(sel,s); tb = new DataTable(); sda.Fill(tb); return tb; } }} database db = new database();
string tableName="customers";
string [] val={textBox1.Text};
if (comboBox1.SelectedItem =="اسم العميل")
dataGridView1.DataSource = db.search(tableName, new[] { "Customers_name" }, val, 1);
else if (comboBox1.SelectedItem == "رقم العميل")
dataGridView1.DataSource = db.search(tableName, new[] { "Id" }, val, 1);
else if (comboBox1.SelectedItem == "رقم الجوال")
dataGridView1.DataSource = db.search(tableName, new[] { "cell_number" }, val, 1); ;