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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : البحث الذكي (/showthread.php?tid=45855)



البحث الذكي - yosif - 10-04-23

كانت هناك مشاركة سابقة بالسؤال التالي
مثال على ذلك لو احتوى العمود على اسم ( محمد عبدالله خالد) فاريد عند البحث عن هذا الاسم بمجرد كتابة ( محمد خالد ) بدون كتابة ( عبد الله ) ان يظهر الاسم كامل
وقد تم كتابة الكود ادناه الذي لم يعمل معي ، لو تتكرموا بعمل برنامج مصغر يقوم بذلك
كود :
Dim strALL As String = ""
        Dim str() As String = TextBox1.Text.Split(" ")
        For i = 0 To str.Length - 1
            If i = 0 Then strALL += "Name1 Like '*" + str(i) + "*' "

            strALL += " And Name1 Like '*" + str(i) + "*' "
        Next

        Dim result As DataRow() = DataGridView1.Select(strALL)
        ' إنشاء جدول جديد لعرض النتائج
        Dim resultTable As DataTable = DataGridView1.Clone()
        For Each row As DataRow In result
            resultTable.Rows.Add(row.ItemArray)
        Next
        ' تعيين المصدر الخاص بDataGridView ليكون النتيجة
        DataGridView1.DataSource = resultTable



RE: البحث الذكي - yosif - 10-04-23

حاولت كتابة الكود التالي لكنه لم يعمل

conn.Open()
Dim DT As New DataTable
Dim da As New SqlDataAdapter
DT.Clear()

Dim strALL As String = ""
Dim str() As String = TextBox1.Text.Split(" ")

For i = 0 To str.Length - 1
da = New SqlDataAdapter("select * from table1 where name1 like '*" + str(i) + "*' ", conn)

Next

da.Fill(DT)
DataGridView4.AutoGenerateColumns = False
DataGridView4.DataSource = DT
conn.Close()
الرجاء التعديل على الكود حيث ان table1 اسم الجدول name1 اسم الحقل و textbox1 هو تكست البحث


RE: البحث الذكي - yosif - 10-04-23

حيث ان الخطاء في الكود اعلاه في الاسطر التالية
Dim result As DataRow() = DataGridView1.Select(strALL)
' إنشاء جدول جديد لعرض النتائج
Dim resultTable As DataTable = DataGridView1.Clone()
For Each row As DataRow In result
resultTable.Rows.Add(row.ItemArray)
Next
' تعيين المصدر الخاص بDataGridView ليكون النتيجة
DataGridView1.DataSource = resultTable


RE: البحث الذكي - سعود - 10-04-23

خذ الصف اولا في متغير ثم ابحث باستخدام خاصية contains

اذا كتبت اسم محمد سيجلب لك اي نص فيه محمد
لكن اذا كتبت اسم علي سالم لن يجلب لك اي نتيجة حتى تاخذ الحقل في نص وتستخدم دالة Contains
اذا فهمتك بشكل صحيح اكتب رد
على فكرة لم اطبق فكرة الـ COntains الى الان.



RE: البحث الذكي - yosif - 10-04-23

تسلمو على الرد وبارك الله فيكم