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

مطلوب طريقة ربط جدولين وعرض النتائج في datagrid

بدأه (( عبدالله )) في 1 ديسمبر 2009 · 2 رد · 2,639 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اخواني في الملف المرفق برنامج انا عامل ربط بين قاعدة البيانات وبين الفيجوال ..

عرضت بعض الأسماء في أداة القائمة وأريد عرض نتائج كل اسم في الداتاغريد ..

يوجد جدول اسمه EE1 فيه مخالفات كل طالب .. اريد عند التأشير على اسم الطالب في أداة القائمة تظهر نتائج الطالب الموجودة في جدول EE1 بالداتاغريد ...

منتظر حل ، وشكراً ..

WindowsApplication1.rar

1

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#2

أولا, ابدأ بتحميل البيانات من جدول المعلومات و جدول المخالفات بدون تحديد الشرط WHERE

	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 	' تحميل جدول المخالفات
 	Dim sql As String = "select * from EE1"
 	Dim da As New OleDbDataAdapter(sql, con)
 	da.Fill(ds, "EE1")

 	' تحميل جدول المعلومات
 	sql = "select * from Info"
 	da = New OleDbDataAdapter(sql, con)
 	da.Fill(ds, "Info")
	End Sub

بعد ذلك و عند اختيار رقم الصف من القائمة نقوم بتحديد فلتر لجدول المعلومات حتى يظهر فقط طلاب الصف المختار من بين جميع الطلاب على الجدول.

	Private Sub ToolStripMenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem2.Click
 	' فك ارتباط القائمة بالجدول
 	ListBox1.DataSource = Nothing
 	' تحديد فلتر الربط
 	ds.Tables("Info").DefaultView.RowFilter = "ClassStudent = 1"
 	' ربط الجدول المفلتر مع القائمة
 	Me.ListBox1.DataSource = ds.Tables("Info").DefaultView
 	' تحديد حقول ربط القائمة مع الجدول
 	Me.ListBox1.DisplayMember = "NameStudent"
 	Me.ListBox1.ValueMember = "numbers"
	End Sub

بعد ذلك تلتقط الحدث SelectedIndex للقائمة حتى تحدد فلتر لجدول المخالفات حتى تظهر فقط مخالفات الطالب المحدد على القائمة.

	Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
 	' إذا كانت القائمة مرتبطة
 	If Not ListBox1.DataSource Is Nothing Then
 	' تحديد فلتر مخالفات الطالب
 	ds.Tables("EE1").DefaultView.RowFilter = "numbers = " + CType(ListBox1.SelectedItem, DataRowView)("numbers").ToString()
 	' فك الارتباط
 	DataGridView1.DataSource = Nothing
 	' إعادة الربط
 	DataGridView1.DataSource = ds.Tables("EE1").DefaultView
 	End If
	End Sub

بالتوفيق :)

1
#3

وفقك الله لما فيه خير المسلمين ، بارك الله فيك وجزاك الله خيراً ..

واسأل الله ان يرضى عنك يا محمد رضى وعن والديك وان يدخلكم الجنة .. اللهم أمين ..

اخي محمد ..

ألا يفضل ان اجلب اسماء معينة بدل لا أأتي بجميع الأسماء إلى النموذج ...؟

ألا يفضل أن أأتي فقط بمخالفات هذا الطالب ، بحيث اني لا احتاج هذا الكم الهائل من البيانات لأحضاره ...؟ دون استخدام له !!

ثم هذا الكود يعطيني خطأ في الجملة ...

ds.Tables("Info").DefaultView.RowFilter = "ClassStudent = 1"

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

سأضعها لكي يستفيد الأخو لكن بعد اتمام حلك السابق .. وزيادة الخير خيرين ..

وفقك الله ..

2

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

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

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

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

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

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