25-01-18, 08:59 AM
وعليكم السلام ورحمة الله وبركاتة
كل كنترول في الــ 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 إلى أين يؤشر بالضبط
كل كنترول في الــ 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 إلى أين يؤشر بالضبط
