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

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (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=29578)



عمل استعلام بدلالة الصفوف المختارة من الداتا جريد - makky - 08-05-19

عمل استعلام عن طريق رقم الصنف.ولكن تم اختيار عدد من الايتم عن طريق اختيار اكثر من في الداتا جريد .كيف تم عمل استعلام لكل العناصر المختار بناء علي قيمتها الموجوده في العمود رقم 8 في الداتا جريد


RE: عمل استعلام بدلالة الصفوف المختارة من الداتا جريد - asemshahen5 - 09-05-19

تفضل هذا مثال مشروح عما تريده :

وهذا الكود مشروح :

PHP كود :
'عمل مديول ووضع فانكشن به'
Module SearchByID
    
''' <summary>'
 
   ''' بحث حسب حقل محدد متعدد القيمة'
 
   ''' </summary>'
 
   ''' <param name="TableName">اسم الجدول</param>'
 
   ''' <param name="FindBy">اسم العامود في قاعدة البيانات المراد البحث فيه</param>'
 
   ''' <param name="Arr">مصفوفة تحمل القيم المراد البحث عنها</param>'
 
   ''' <returns>داتا تيبل</returns>'
 
   ''' <remarks>لا يوجد</remarks>'
 
   Public Function LoadAllRowsToTheToolsInForm(ByVal TableName As StringFindBy As StringByVal Arr As ArrayList) As DataTable
        
'تعريف متغير لعمل الاستعلام'
 
       Dim StrSQL As String String.Empty
 
       'تعريف متغير من نوع رقمي'
 
       Dim i As Integer 0
        
'بداية عمل الاستعلام'
 
       StrSQL "Select * From " TableName " Where " FindBy "="
 
       'تصفير المتغير الرقمي'
 
       i 0
        
'عمل لوب حسب عدد العدد المحفوظ بالاراي'
 
       For i 0 To Arr.Count 1
            
'عمل شرط حسب أخر قيمة في الاراي'
 
           If i Arr.Count 1 Then
                
'تكملة تعبئة الاستعلام'
 
               StrSQL += "@txt" i
            Else 
'كل قيم الاراي ما عدا آخر قيمة'
 
               'تعبئة الاستعلام بـ اسم العامود و الباراميتر'
 
               StrSQL += "@txt" " Or " FindBy "="
 
           End If
 
       Next
        
'تصفير المتغير الرقمي'
 
       i 0
        
'كود الاتصال بقاعدة البيانات'
 
       Dim Con As New SqlClient.SqlConnection("Server =(local);database=TestAsemXT;integrated security=false;User ID=UserName;Password=12345")
 
       'تعريف داتا أدبتر'
 
       Dim da As New SqlClient.SqlDataAdapter
        
'فتح الاتصال بقاعدة البيانات'
 
       If Con.State ConnectionState.Closed Then Con.Open()
 
       'تعريف سيكول كوماندو وضع الاستعلام و كود الاتصال به'
 
       Dim cmd As New SqlClient.SqlCommand(StrSQLCon)
 
       'عمل لوب حسب عدد العدد المحفوظ بالاراي لوضع الباراميترات فيه'
 
       For i 0 To Arr.Count 1
            
'شرط لايقاف اللوب عند آخر قيمة'
 
           If i Arr.Count Then Exit For
 
           'تعبئة الباراميترات من القيم المحفوظة بالاراي'
 
           cmd.Parameters.AddWithValue("@txt" iArr(i).ToString)
 
       Next
        
'وضع الكوماند بـ الداتا أدبتر'
 
       da.SelectCommand cmd
        
'تعريف داتاتيبل'
 
       Dim dt As New DataTable
        
'تفريغ الداتاتيبل'
 
       dt.Clear()
 
       Try
            
'فتح الاتصال بقاعدة البيانات في حال كان مغلقا'
 
           If Con.State ConnectionState.Closed Then Con.Open()
 
           'تحميل السجلات في الداتاتيبل'
 
           da.Fill(dt)
 
           'إغلاق الاتصال بقاعدة البيانات في حال كان مفتوحا'
 
           If Con.State ConnectionState.Open Then Con.Close()
 
           'العودة بـ الداتاتيبل المعبئة'
 
           Return dt
        Catch ex 
As Exception
            
'رسالة في حال وجود خطأ'
 
           MessageBox.Show(ex.Message)
 
           'إغلاق الاتصال بقاعدة البيانات في حال كان مفتوحا'
 
           If Con.State ConnectionState.Open Then Con.Close()
 
           'العودة بقيمة فارغة بسبب الخطأ'
 
           Return Nothing
        Finally
            
'إغلاق الاتصال بقاعدة البيانات في حال كان مفتوحا'
 
           If Con.State ConnectionState.Open Then Con.Close()
 
       End Try
 
   End Function
End Module
'كيفية إستخدام الكود في الفورم'
'كيفية إستخدام الكود في الفورم'
Public Class Form1
    
'كود تحميل الفورم'
 
   Private Sub Form1_Load(sender As ObjectAs EventArgsHandles MyBase.Load
        
'تعريف متغير ووضع الاستعلام به'
 
       Dim StrSQL As String "Select * From TestTable "
 
       'كود الاتصال بقاعدة البيانات'
 
       Dim Con As New SqlClient.SqlConnection("Server =(local);database=TestAsemXT;integrated security=false;User ID=UserName;Password=123456")
 
       'تعريف داتا أدبتر'
 
       Dim da As New SqlClient.SqlDataAdapter(StrSQLCon)
 
       'تعريف داتاتيبل'
 
       Dim dt As New DataTable
        
'تفريغ الداتاتيبل'
 
       dt.Clear()
 
       'تعريف اسم للجدول في الداتا تيبل'
 
       dt.TableName "TestTable"
 
       'تحميل السجلات في الداتاتيبل'
 
       da.Fill(dt)
 
       'عمل لووب لتعبئة الجدول من الداتا تيبل'
 
       For Each Row As DataRow In dt.Rows
            
'وضع السجلات في الجدول'
 
           DGV1.Rows.Add(Row.ItemArray)
 
       Next
    End Sub
    
'زر البحث عن طريق القيم المحددة في الجدول الاول'
 
   Private Sub BtnFindByIdDGV1_Click(sender As ObjectAs EventArgsHandles BtnFindByIdDGV1.Click
        
'عمل أراي ليست'
 
       Dim Arr As New ArrayList
        
'تفريغ الاراي ليست'
 
       Arr.Clear()
 
       'عمل لوب لتعبئة الاراي من القيم المحددة في الجدول الاول'
 
       For Each row As DataGridViewRow In DGV1.Rows
            
'عمل شرط للتحقق من القيم المحددة في الجدول الاول'
 
           If row.Cells(4).Value True Then
                
'وضع القيم في الاراي حسب عامود الرقم'
 
               Arr.Add(row.Cells(0).Value)
 
           End If
 
       Next
        
'لفريغ الجدول من السجلات في حال عمل بحث جديد'
 
       DGV2.Rows.Clear()
 
       'عمل لوب لتعبئة الجدول من الداتاتيبل العائدة من الفانكشن'
 
       For Each row1 As DataRow In LoadAllRowsToTheToolsInForm("TestTable""ID"Arr).Rows
            
'وضع السجلات في الجدول'
 
           DGV2.Rows.Add(row1.ItemArray)
 
       Next
    End Sub
End 
Class 



RE: عمل استعلام بدلالة الصفوف المختارة من الداتا جريد - makky - 09-05-19

جزاك الله خيرا اخي. إن شاء الله أروح البيت واشوف الموضوع