السلام عليكم
الاستعلام التالي يعمل جيداً اذا كانت الكلمات التي ابحث عنها باللغة الانجليزية
ولا يعمل اذا كانت باللغة العربية فما السبب في ذلك ؟
كود :
Public Function search_by_culumn(tablename As String, culumn As String, value As String)
connect()
Dim dt As New DataTable
Dim da As New SqlDataAdapter("select * from " + tablename + " Where " + culumn + " like '%" & value & "%'", con)
da.Fill(dt)
Return dt
End Function
تعديل
بيئة العمل فيجوال ستوديو 2019
قاعدة البيانات sql server localdb
وعليكم السلام ورحمة الله وبركاته
كل ما عليك التاكد من المحتوى
داخل الجدول بقاعدة البيانات
تحياتى لك
وتمنياتى لك التوفيق
شكراً لك اخى الجوكر
تأكدت الفعل من محتوى الجدول
على سبيل المثال
قاعدة البيانات بها اسم سامح أول ما اكتب حرف ال س
الاقي البيانات كلها اختفت من ال datagridview
من الواضح ان لغة قاعدة البيانات غير مهيئة للغة العربية
وانت قمت بادخال البيانات يدوياً الى قاعدة البيانات
ومن ثم تقوم بتجربة البحث
اذا كان كلامى صح فهنا تقع المشكلة حيث
الاحرف قد تظهر معك باللغة العربية فى قاعدة البيانات
ولكن من حيث الكود والبرمجة تراها كرموز
فيجب عليك اتمام عمل اضافة بيانات من خلال البرمجة
وما قمت باضافته تقوم بعمل عليه البحث
لاختبار الامر اكثر
ادخل الى قاعدة البيانات وجرب تنفيذ كود الاستعلام من خلاله وشوف الناتج الذى سيعرض معك
واتمنى توضح الكود الموجود لهذا الامر
تحياتى لك
وتمنياتى لك التوفيق
شكراً لك مرة اخرى اخى واستاذى الكريم
جربت الاستعلام داخل قاعدة البيانات بالطريقة التالية ولم يفلح مع اللغة العربية ايضاً
كود :
select * from t1 Where p_name like '%س%'
'بالنسبة لاعداد قاعدة البيانات للتوافق مع العربية فأنا لا اعرفها وانا اعمل من خلال بيئة فيجوال استوديو نفسها
ملاحظة : الحروف العربية تظهر واضحة داخل قاعدة البيانات وايضاً عند عمل run
أما عند كود connect فها هو
كود :
Public con As New SqlConnection("Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|Db.mdf;Integrated Security=True;Connect Timeout=30")
Public Sub connect()
If con.State = ConnectionState.Closed = False Then con.Close()
con.Open()
End Sub
ملحوظة
كان نوع الحقل في الجدول NVARCHAR
وعندما حولته الى VARCHAR
ظهرت الحروف العربية كعلامات استفهام عند عمل run
بخصوص كود الاستعلام اجعلها بهذا الشكل
كود :
select * from t1 Where p_name like N'%س%'
جربها واذا نجح الامر معك تعال فى كود المشروع
وعدل على هذا الجزء من الكود
كود :
like '%" & value & "%'", con)
لتجعله بهذا الشكل
كود :
like N'%" & value & "%'", con)
وطبعاً اجعل الامر على NVARCHAR
تحياتى لك
وتمنياتى لك التوفيق
شكراً اخي الكريم لقد نجح الأمر