منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : بحث بالمعامل like
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 

الاستعلام التالي يعمل جيداً اذا كانت الكلمات التي ابحث عنها باللغة الانجليزية Big Grin 
ولا يعمل اذا كانت باللغة العربية فما السبب في ذلك ؟
Huh Huh Huh

كود :
   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
من الواضح ان لغة قاعدة البيانات غير مهيئة للغة العربية
وانت قمت بادخال البيانات يدوياً الى قاعدة البيانات

ومن ثم تقوم بتجربة البحث
اذا كان كلامى صح فهنا تقع المشكلة حيث
الاحرف قد تظهر معك باللغة العربية فى قاعدة البيانات
ولكن من حيث الكود والبرمجة تراها كرموز

فيجب عليك اتمام عمل اضافة بيانات من خلال البرمجة
وما قمت باضافته تقوم بعمل عليه البحث

لاختبار الامر اكثر
ادخل الى قاعدة البيانات وجرب تنفيذ كود الاستعلام من خلاله وشوف الناتج الذى سيعرض معك

واتمنى توضح الكود الموجود لهذا الامر
كود :
connect()

تحياتى لك
وتمنياتى لك التوفيق
شكراً لك مرة اخرى اخى واستاذى الكريم
جربت الاستعلام داخل قاعدة البيانات بالطريقة التالية ولم يفلح مع اللغة العربية ايضاً
كود :
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

تحياتى لك
وتمنياتى لك التوفيق
شكراً اخي الكريم لقد نجح الأمر
الشكر لله والحمد لله
والحمد لله على كل حال

تحياتى لك
وتمنياتى لك التوفيق