01-04-19, 10:27 PM
(01-04-19, 09:17 PM)elgokr كتب :اخي الكريم اشكرك جزيل الشكر على الرد ولكن يبدو انني لم اوضح السؤال جيداً اريد ان استخدم مجموعه من التكست بوكسوعليكم السلام ورحمة الله وبركاته
قم باستخدام الكود بهذا الشكل
كود :
Try
Dim s As String = TextBox1.Text
If s.Contains(",") Then
Dim Str As String() = TextBox1.Text.Split(",")
For Each aa In Str.ToList
searchDT.Clear()
searchDA = New OleDbDataAdapter("select * from Employees where `الاسم` like '" & aa & "' or `الرقم الوطني` like '" & aa & "' or `رقم الهاتف` like '" & aa & "' or `مكان الميلاد` like '" & aa & "' or `عنوان السكن` like '" & aa & "' or `الجنس` like '" & aa & "'", con)
searchDA.Fill(searchDT)
If searchDT.Rows.Count <> 0 Then
DataGridView1.DataSource = searchDT Then
calcu_gradview()
Exit For
End If
Next
Else
searchDT.Clear()
searchDA = New OleDbDataAdapter("select * from Employees where `الاسم` like '" & s & "' or `الرقم الوطني` like '" & s & "' or `رقم الهاتف` like '" & s & "' or `مكان الميلاد` like '" & s & "' or `عنوان السكن` like '" & s & "' or `الجنس` like '" & s & "'", con)
searchDA.Fill(searchDT)
DataGridView1.DataSource = searchDT
calcu_gradview()
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
تذكر انا قمت بوضع كود تحقق اذا تم ايجاد نتائج البحثيقوم بانهاء اجراء For كونه حصل على نتائج دون الحاجة لاستككمال اعادة البحث على باقي القيم
فمثلاً لديك عدد 3 قيم تقوم بالبحث بهاووجد نتيجة من اول قيم سيتجاهل القيمة 2 و 3 من البحث
لان بدون هذا الامرستجد اذا وجد نتائج من القيمة الاول وراح وجد فى القيمة الثالثةستجد انه يعرض فقط القيمة الثالثة لذلك لتقليل الحمل والوقت عند وجود اول نتائج يعرضها مباشراً
تحياتى لكوتمنياتى لك التوفيق
الاول الاسم.text
الثاني الرقم_الوطني.text
الثالث الجنس.text
الرابع عنوان السكن.text
الخامس مكان الميلاد.text
السادس رقم الهاتف.text
وهذه التكست بوكس تقبل البحث عن اكثر من قيمة في نفس الوقت بمعنى بعد اضافة الفاصله في اي تكست سيجلب كل القيم فمثلا رقم الهاتف لو كتبت
55666666,55544455,666699988,4447788899 ونطابقت هذه الارقام مع ارقام موجودة في قاعدة البيانات يجب ان تظهر جميعها في الداتا جريد فيو وفي حال اضفت عنوان يتم تصفية النتائج بناءً على العنوان لارقام الهواتف وكذلك باقي الخانات ويبدو انني سوف استخدم and بدلا من or ليكون البحث شامل لجميع الخانات
وهذا هو الكود بعد اضافة تعديل بسيط حيث انه يعمل بشكل جيد ولكن لتكست بوكس واحد انا اريد اللوب ان يشمل جميع التكست بوكس
كود :
im s As String = TextBox1.Text
Dim Str() As String = TextBox1.Text.Split((",").ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
If s.Substring(s.Length - 1) = "," Then
Try
For i As Integer = 0 To Str.Length - 1
searchDT.Clear()
searchDA = New OleDbDataAdapter("select * from Employees where الاسم like '" & Str(i) & "' and الرقم_الوطني like '" & Str(i) & "' and رقم_الهاتف like '" & Str(i) & "' and مكان_الميلاد like '" & Str(i) & "' and عنوان_السكن like '" & Str(i) & "' and الجنس like '" & Str(i) & "'", con)
searchDA.Fill(searchDT)
DataGridView1.DataSource = searchDT
calcu_gradview()
Next
Catch ex As Exception
End Try