تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] الخاصية BindingContext(dt).Position
#1
السلام عليكم ورحمه الله وبركاته
لو سمحتم اساتذتي الافاضل :
شو الخطأ الحاصل بالصورة الأولى
علماً بأن الفرق بين الصورتين هو اسم الكلاس فقط فالصورة الأولى كتبت الاكواد بكلاس مستقل يدعى Test
أما الصورة الثانية كتبت الاكواد بكلاس الفورم Form2

وتفضلوا بقبول فائق الاحترام


الملفات المرفقة صورة/صور
       
الرد
تم الشكر بواسطة:
#2
السلام عليكم ورحمة الله وبركاته


ال BindingContext يتم إنشاءه مع الأدوات،
ولتتعامل معه في كلاس مستقل (غير وارث) عليك إنشاءه بنفسك مثل

كود :
Public Class Test

   Dim BindingContext As New BindingContext




السلام عليكم ورحمة الله وبركاته
الرد
تم الشكر بواسطة: أبوسعود
#3
وعليكم السلام ورحمة الله وبركاتة 

كل كنترول في الــ NET. يحتوي على BindingContext
والفورم في الأصل كنترول 

وكما ذكر أخي خالد انه يجب عليك إنشاءة بنفسك داخل الكلاس الخاص بك

الـBindingContext وضيفتةربط الكنترول بمصدر بيانات
وهو المسؤول عن التأشير على مكان المصدر 
وأيضاً هو المسؤول عن إذا تغيرت القيمة في المصدر يغيرها في الكنترول
وإذا تغيرت البيانات في الكنترول يغيرها في المصدر

ولكن الواضح من الكود الموجود في الصورتين أن الجدول dt غير مرتبط نهائياً بأي كنترول
ولذلك لا تحتاج أو من غير المنطقي أن تسأل عن موقع البيانات أو رقم الـIndex الخاص بالـRow الذي يؤشر علية الـBindingContext في الجدول dt

لتصحيح أو لجعلها منطقية أكثر :
إستبدل dt.Rows(pos).Item("Id") = 1
--------------------------------------------------------
لتصبح : dt.Rows(0).Item("Id") = 1
أو 
لتصبح : dt.Rows(0)("Id") = 1
أو 
لتصبح : dt(0)("Id") = 1


لماذا رقم (0) : لأنك الآن تريد أن تقوم بعمل Update لسجل واحد فقط


لا تحتاج إلى الـBindingContext في هذة الحالة إلى إذا كان الجدول مربوط بكنترول لعرض البيانات وتريد أن تعرف من الـBindingContext إلى أين يؤشر بالضبط
الرد
تم الشكر بواسطة: عبد العزيز البسكري , أبوسعود



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


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