تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
عمل استعلام بدلالة الصفوف المختارة من الداتا جريد
#1
عمل استعلام عن طريق رقم الصنف.ولكن تم اختيار عدد من الايتم عن طريق اختيار اكثر من في الداتا جريد .كيف تم عمل استعلام لكل العناصر المختار بناء علي قيمتها الموجوده في العمود رقم 8 في الداتا جريد
الرد }}}
تم الشكر بواسطة:
#2
تفضل هذا مثال مشروح عما تريده :

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

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 


الملفات المرفقة
.zip   SearchByIDDGV.zip (الحجم : 88.14 ك ب / التحميلات : 61)
.zip   عمل الداتابيز و الجدول للتجربة.zip (الحجم : 556 بايت / التحميلات : 37)
الرد }}}
تم الشكر بواسطة: elgokr
#3
جزاك الله خيرا اخي. إن شاء الله أروح البيت واشوف الموضوع
الرد }}}
تم الشكر بواسطة: elgokr


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  استعلام select عن مجموعة بيانات Adel27213 1 215 15-03-24, 01:11 AM
آخر رد: justforit
  مشكلة فى جمع عمود فى داتا جريد فيو احمد خطاب 3 167 06-03-24, 07:49 PM
آخر رد: احمد خطاب
  حذف الاسطر الفارغه من الداتا جريد فيو اليوم السابع 3 2,382 03-03-24, 12:57 AM
آخر رد: مصمم هاوي
  كيفية جمع أرقام عمود فى الداتا جريد فيو بناءاً على بيانات معينة heem1986 5 241 25-02-24, 11:26 PM
آخر رد: heem1986
  كيفية تنفيذ امر عند التعليم على checkbox بالداتا جريد فيو heem1986 2 164 21-02-24, 01:37 AM
آخر رد: heem1986
  [VB.NET] مشكلة التاريخ في الداتا قريد فيو مبرمج صغير 1 6 405 24-01-24, 10:12 PM
آخر رد: annagui
  هل الداتا قراد فيو تسمح بتعدد الاسطر داخل الخلية عند جلب بيانات نصية طويله من قاعدة ب khalidalwdi 3 471 10-11-23, 11:08 AM
آخر رد: khalidalwdi
  استعلام من عدة جداول لقاعدة بيانات اكسس Adel27213 12 1,093 09-11-23, 05:27 PM
آخر رد: justforit
Exclamation [VB.NET] من يقدر يعمل لي استعلام يحقق طلبي ؟ أبو خالد الشكري 5 422 09-11-23, 02:25 PM
آخر رد: أبو خالد الشكري
  ممكن كود ترقيم تلقائي في الداتا غريد فيو المبرمج البسيط 16 10,610 08-11-23, 01:44 AM
آخر رد: الحزين اليماني

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم