الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ممكن أعرف أيش الخطأ في هذا الكود ؟

بدأه salsabeel في 29 مارس 2008 · 7 رد · 703 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أخواني الكرام قمت بعمل مشروع مرتبط بقاعدة بيانات SQLSERVER

ولكن المشكلة عندما أقوم بربط checkbox بـ databinding بالكودالتالي

CheckBox8.DataBindings.Add("checked", B, "per_left")

لا يقبل المشروع إضافة حقل جديد دون إظهار رسالة خطأ

ممكن تكرما ممن لديه أي فكرة حول السبب أن يوضحه مشكورا

واتقوا الله ويعلمكم الله

#2

يمكن ان تكون عدة مشاكل

1- ان القيمة المخزونة في قواعد البيانات لا توافق القيمة في الكونترول

في المثال التالي يجب ان يكون العامود يحتوي على قيمة

False or True

2- لم توضح ما هي B اذا كانت هي اوبجكت من ونوع DataTable فالكود صحيح

و هذا مثال

CheckBox1.DataBindings.Add("Checked", MyDataSet.Tables("TableName"), "ColName")

و هذا مثال اخر نفس النتيجة مع اختلاف بسيط

CheckBox1.DataBindings.Add("Checked", MyDataSet, "TableName.ColName")

لاحظ القيم التي يجب ان تمرر الى المثيود Add

اول اسم البروبرتي الخاصة بالكونترول و قد مرناا هنا Checked

الثاني هو الداتا سيت او الداتا تيبل MyDataSet

الثالث هو اسم العامود او اسم التيبل و العامود حسب المعامل الذي قبله

و اتمنى يكون الشرح واضح

تم تعديل هذه المشاركة بواسطة slayer666 في 29 مارس 2008 في 19:51

#3

أشكرك أخي الكريم على تفضلك بالتوضيح الجميل

أما بالنسبة لـ B في الكود الخاص بي فهو عبارة عن متغير من نوع BindingSource

DIM B AS NEW BindingSource

وبالنسبة لـ Checkbox1 فهو عبارة عن أداه ومع ذلك المشكلة هي أنه عندما أقوم بالنقر على الزر الذي يحتوي على الكود التالي لإضافة السجل

B.AddNew()

لا يقوم بفتح سجل جديد فارغ تهيئة لتعبئة بيانات جديدة

واتقوا الله ويعلمكم الله

#4

اخي العزيز الكريم

الداتا بايندك هي اداة ربط بين الكونترول مثل text box او label

مع DataSet او DataTable

اما BindingSource فهية مخصصة للباندك المعقد

و هي مخصصة نوع محدود من الكونترولز

مثل

Data Grid و Combo Box

اما ال Check Box فهو لا يدعم ال BindingSource

يمكنك استبدال الكود السابق بهذا

		Dim b As Binding = New Binding("Checked", MyDataSet, "TableName.ColName")
		Checkbox1.DataBindings.Add(b)
#5

اما بالنسبة لاضافة سطر جديد فليس له اي علاقة بالداتا بايندك

انظر المثال

و لايمكن تطبيق هذا المثال ان لم تضع داتا تيبل داخل الداتا سيت بستخدام Fill للداتا ادابتر

		Dim daSet As DataSet
		Dim MyRow As DataRow = daSet.Tables("Your Table").NewRow
		MyRow("ColName1") = 0
		MyRow("ColNmae2") = "YourValue"
		daSet.Tables("Your Table").Rows.Add(MyRow)
#6

أشكرك أستاذي العزيز sleyer666 على هذه المعلومات

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

أنا أرفقت بهذه المشاركة مثال للشيء اللي أريده ممكن مشكورا تنزل المثال وتعدل عليه بحيث تمشي العملية على مايرام وتعيد رفعه مرة أخرى

مع خالص شكري وتقديري

test.zip

واتقوا الله ويعلمكم الله

#8

مشكور أستاذي وتقبل خالص تحياتي

واتقوا الله ويعلمكم الله

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…