منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] بحث بالمعامل like - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40)
+--- قسم : قسم أسئلة قواعد البيانات تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=41)
+--- الموضوع : [سؤال] بحث بالمعامل like (/showthread.php?tid=29957)



بحث بالمعامل like - samehalgndi - 21-06-19

السلام عليكم 

الاستعلام التالي يعمل جيداً اذا كانت الكلمات التي ابحث عنها باللغة الانجليزية 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


RE: بحث بالمعامل like - elgokr - 21-06-19

وعليكم السلام ورحمة الله وبركاته


كل ما عليك التاكد من المحتوى
داخل الجدول بقاعدة البيانات

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



RE: بحث بالمعامل like - samehalgndi - 21-06-19

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


RE: بحث بالمعامل like - elgokr - 21-06-19

من الواضح ان لغة قاعدة البيانات غير مهيئة للغة العربية
وانت قمت بادخال البيانات يدوياً الى قاعدة البيانات

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

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

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

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

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



RE: بحث بالمعامل like - samehalgndi - 21-06-19

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


RE: بحث بالمعامل like - elgokr - 22-06-19

بخصوص كود الاستعلام اجعلها بهذا الشكل
كود :
select * from t1 Where p_name like N'%س%'

جربها واذا نجح الامر معك تعال فى كود المشروع

وعدل على هذا الجزء من الكود
كود :
like '%" & value & "%'", con)

لتجعله بهذا الشكل
كود :
like N'%" & value & "%'", con)

وطبعاً اجعل الامر على NVARCHAR

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



RE: بحث بالمعامل like - samehalgndi - 22-06-19

شكراً اخي الكريم لقد نجح الأمر


RE: بحث بالمعامل like - elgokr - 22-06-19

الشكر لله والحمد لله
والحمد لله على كل حال

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