تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مشكلة في استدعاء قاعدة بيانات
#2
وعليكم السلام ورحمة الله وبركاتة 


تم تغيير التالي : في الأمر Private Sub Retrieve




تم تغيير الحلقة For Each
من : For Each row In dt.Rows   ( هنا row نوعها Object , أصل جميع الكائنات في الـ Net. ) 
إلى : For Each row As DataRow In dt.Rows    ( هنا row نوعها DataRow , وهو النوع الصحيح , لأنك تقوم بالإلتفاف على جدول , والجدول عبارة عن مجموعة سجلات, والـ row هو عبارة عن سجل واحد )

لذلك يجب تعريف ما هو نوع row
حتى نتمكن من الوصول إلى وظائف وأوامر وخصائص كل سجل نقوم بالإلتفاف علية , 

 من :
كود :
           For Each row In dt.Rows
               Populate(row(0), row(1), row(2), row(3), row(4), row(5))
           Next





إلى :
كود :
           For Each row As DataRow In dt.Rows
               Dim id As String = "" : If Not row.IsNull(0) Then id = row(0)
               Dim spacecraft As String = "" : If Not row.IsNull(1) Then spacecraft = row(1)
               Dim propellant As String = "" : If Not row.IsNull(2) Then propellant = row(2)
               Dim destination As String = "" : If Not row.IsNull(3) Then destination = row(3)
               Dim destination1 As String = "" : If Not row.IsNull(4) Then destination1 = row(4)
               Dim destination2 As String = "" : If Not row.IsNull(5) Then destination2 = row(5)
               Populate(id, spacecraft, propellant, destination, destination1, destination2)
           Next


IsNull هي أحد الوظائف الموجودة في الكائن المسمى row والذي هو من نوع DataRow

يتم التحقق من الحقل رقم صفر إذا كان فارغ أم لا .
بالكود التالي :
If Not row.IsNull(0) Then
إذا لم يكن فارغ إذن ضع القيمة .
لأن الحقل الفارع يعبر عنه بـ Null
ولا يمكن تحويل Null إلى نص ( كما أنه لا يمكن تحويل Null إلى أي شيء , غير قابل للتحويل )
لأن Null تعني لا شيء
ومحاولة التحويل ستنتج خطأ.
لذلك يجب التحقق من قيمة الحقل قبل إستخدامها .
الرد }}}


الردود في هذا الموضوع
RE: مشكلة في استدعاء قاعدة بيانات - بواسطة عبدالله الدوسري - 17-03-18, 03:31 AM


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


يقوم بقرائة الموضوع: