منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة في استدعاء قاعدة بيانات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله 

واجهتني مشكلة هو عند استدعاء قاعدة بينات من نوع اكسس 
طبعاً عندي في قاعدة البيانات اكثر من عمود يعني عندي (10) اعمدة 

ضهر هذا الخطاء
[صورة مرفقة: p_804ph24r1.jpg]

طبعاً السورس كامل بالمرفات ممكن تعديل عليه واعادة رفعه لي
وعليكم السلام ورحمة الله وبركاتة 


تم تغيير التالي : في الأمر 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 تعني لا شيء
ومحاولة التحويل ستنتج خطأ.
لذلك يجب التحقق من قيمة الحقل قبل إستخدامها .