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

كيف احدد Check في اداة Checkedlistbox مربوطة بقاعدة البيانات

بدأه عنييد في 17 نوفمبر 2008 · 3 رد · 1,102 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه

استخدم Microsoft Visual Basic.NET الاصدار 2005

والقاعدة SQL Server

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

الحقل الاول GroupID

الحقل الثاني GroupName

وجدول آخر School مكون من حقلين

الاول SchoolID

الثاني GroupID

وبين الجدولين علاقة عن طريق GroupID

واستخدم Listbox اعرض فيه ارقام المدارس


ListBox1.ValueMember = "SchoolID"
		ListBox1.DisplayMember = "SchoolID"

و CheckedListBox اعرض فيه المجموعات (GroupName)


CheckedListBox1.ValueMember = "GroupID"
		CheckedListBox1.DisplayMember = "GroupName"

في جدول School

توجد ارقام المدارس في الحقل SchoolID

وامام كل مدرسة رقم المجموعة في الحقل GroupID

يعني مثلاً

رقم المدرسة رقم المجموعة

3000________6

3000________9

3000________16

3001________4

3001________5

مع ملاحظة ان كل مدرسة تنتمي لأكثر من مجموعة

البيانات تظهر في قائمة Listbox و CheckedListBox

ومربوطة بالقاعدة بدون مشاكل

المطلوب

عند النقر على رقم المدرسة في Listbox

يختار المجموعات المنتمي اليها المدرسة في CheckedListBox

بحيث يضع علامة صح في صندوق Check

post-2694-1226938218_thumb.jpg

ولكم جزيل الشكر والاحترام سلفاً

#2

يا اخوان عملي متوقف على هذه النقطة

#3

دعنا نمسك الموضوع واحدة واحدة

هل بعد ما تستدعى البيانات في الـــ ListBox و الـــ CheckList القيم بتكون محفوظة في الذاكرة

القيم اللي هي انك بتقول فيها ان رقم المدرسة (3000) فيه المجموعات (6-9-16) ؟؟

فاذا كنت لا تحتفظ بها في الذاكرة فعليك بعمل بروسودير او تنفيذ جملة استعلامية معينة لإحضار هذه المجموعات بمجرد النقر على رقم المدرسة

يعني في حدث الكليك او تغيير الإندكس بتاع الــ Listbox هاتنفذ الجملة الإستعلامية الخاصة بإحضار ارقام المجموعة التي تخص هذه المدرسة

يعني كدة مثلا

(هات ارقم المجموعات من جدول المدارس بشرط ان يكون المدرسة رقمها = 3000)

المفروض هايرجعلك (16-9-6)

الكلام ده المفروض هايكون في داتا سيت

ايا كان هو فين سواء في الداتا سيت ام في مصفوفة

هاتلوب (Loop)

عليها وفي نفس الوقت هاتلوب على الــ CheckList

ولو دي بتساوي دي اذن علم صح

هاقولك مثال بسيط اذا كنت تستخدم الداتا سيت في التخزين

For Each dRow In ds.Tables(0).Rows

			For i As Integer = 0 To CheckedListBox1.Items.Count - 1
				If CheckedListBox1.Items.Item(i) = dRow("GroupID") Then CheckedListBox1.SetItemChecked(i, True)
			Next
		Next

الـ dRow هو متغير من نوع DataRow

قم بتعريفه حتى تستطيع القراءة من الداتا سيت لأنه يعتبر احد ادوات القراءة من الداتا سيت حيث يحمل قيمة صف في الداتا سيت

وهنا انت بتقوله يعدي على كل صف في الداتا سيت

واثناء ما هو بيعدي على كل صف في الداتا سيت

بتعدي على كل قيمة في الشيك ليست

وبتقارن هل ده بساوي ده ولا لأ

وبس

اذا كنت فاهم قولي

واذا كنت مش فاهم

قولي برضوا

Mohamed Ali Salim

0.1..0...4....7.....6......2.......7........4.........8

#4

ياعيني عليك

فاهم الله يجزاك خير

وتم عمل اللازم مثل ما تفضلت

الله لا يحرمك الاجر

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

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

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

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

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