تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
العلاقات بين أكثر من جدولين ... وآلياتها ... وتعديل نوع الحقول
#4
جزاك الله خيراً أستاذي الفاضل ...

بالنسبة لسيرفر sql فقد اتبعت تعليماتك وانحلت المشكلة ... ولله الحمد ولك جزيل الثواب .

وبالنسبة لعملية الربط فلم أوفق تماماً في إسناد جملة ( inner join ) لـ (bindingsource) ... حيث أنه في الجدول الثاني ( القريد ) يظهر كافة الحقول ... الخ ...

ولقد قمت بعملية الربط باستخدام مطول (لأنني مبتدئ) لجملة Relations وإليك توضيح لمثل ما قمت به في الأكواد التالية

كود :
Dim cmd As SqlCommand = New SqlCommand("SELECT * from stu_data ", con)
            SQLDataAdapter1 = New SqlDataAdapter(cmd)
            Dim builder As SqlCommandBuilder = New SqlCommandBuilder(SQLDataAdapter1)
            SQLDataSet1 = New DataSet()
            SQLDataAdapter1.Fill(SQLDataSet1, "stu_data")

Dim cmd20 As SqlCommand = New SqlCommand("SELECT * from course ", con)
            SQLDataAdapter20 = New SqlDataAdapter(cmd20)
            Dim builder20 As SqlCommandBuilder = New SqlCommandBuilder(SQLDataAdapter20)
            SQLDataSet20 = New DataSet()
            SQLDataAdapter20.Fill(SQLDataSet20, "course")

Dim cmd30 As SqlCommand = New SqlCommand("SELECT * from Family ", con)
            SQLDataAdapter30 = New SqlDataAdapter(cmd30)
            Dim builder30 As SqlCommandBuilder = New SqlCommandBuilder(SQLDataAdapter30)
            SQLDataSet30 = New DataSet()
            SQLDataAdapter30.Fill(SQLDataSet30, "Family")



            BindingSource1 = New BindingSource(SQLDataSet1, "stu_data")
            BindingSource11 = New BindingSource(SQLDataSet20, "course")
            BindingSource12 = New BindingSource(SQLDataSet30, "Family")


            stu_no.DataBindings.Add("Text", BindingSource1, "stu_no", True, 1, "")
            stu_name.DataBindings.Add("text", BindingSource1, "stu_name", True, 1, "")
            stu_zone.DataBindings.Add("text", BindingSource1, "stu_zone", True, 1, "")
            stu_address.DataBindings.Add("text", BindingSource1, "stu_address", True, 1, "")
  stu_contry.DataBindings.Add("SelectedValue", BindingSource1, "stu_contry", True, 1, "")




            data.Locale = System.Globalization.CultureInfo.InvariantCulture
            data2.Locale = System.Globalization.CultureInfo.InvariantCulture

            SQLDataAdapter1.Fill(data, "stu_data")
            SQLDataAdapter20.Fill(data, "course")
            SQLDataAdapter1.Fill(data2, "stu_data")
            SQLDataAdapter30.Fill(data2, "Family")



            Dim relation1 As New DataRelation("stu_datacourse", data.Tables("stu_data").Columns("stu_no"), data.Tables("course").Columns("cou_stu_no"))
            Dim relation2 As New DataRelation("stu_dataFamily", data2.Tables("stu_data").Columns("stu_no"), data2.Tables("Family").Columns("Fam_stu_no"))

            data.Relations.Add(relation1)
            data2.Relations.Add(relation2)

            BindingSource1.DataSource = data
            BindingSource11.DataSource = data2

            BindingSource1.DataMember = "stu_data"
            BindingSource11.DataMember = "stu_data"
            BindingSource13.DataMember = "stu_data"


            'انشاء بندج سورز جديد وادراج الداتاست والجدول بداخله
            BindingSource20 = New BindingSource(SQLDataSet20, "course")
            bindingsource30 = New BindingSource(SQLDataSet30, "Family")

            bindingsource20.DataSource = BindingSource11
            bindingsource20.DataMember = "stu_datacourse"

            bindingsource30.DataSource = BindingSource12
            bindingsource30.DataMember = "stu_dataFamily"


            ' SQL كود ربط داتا جريد بقاعدة البيانات
            DataGridView1.DataSource = BindingSource20
            DataGridView2.DataSource = bindingsource30

أنا أعتقد ( بل أكاد أجزم ) بأنني طولت وكررت في الكود ولكن هذا ما وصل إليه فهمي ....

مشكلتي الآن :
** مثلاً الحقل ( stu_contry ) هو كومبو يأخذ قيمته من جدول الدول بالكود التالي

كود :
Dim cmd1 As SqlCommand = New SqlCommand("SELECT * from contry ", con)
            SQLDataAdapter2 = New SqlDataAdapter(cmd1)
            Dim builder1 As SqlCommandBuilder = New SqlCommandBuilder(SQLDataAdapter2)

            SQLDataSet2 = New DataSet()

            SQLDataAdapter2.Fill(SQLDataSet2, "contry")

            stu_contry.DataSource = SQLDataSet2.Tables("contry")
            stu_contry.DisplayMember = "con_Name"
            stu_contry.ValueMember = "con_no"
ولكنه يظهر أول خيار في الكمبو وإذا انتقلت لسجل طالب ليست مسجلة له دولة يظهر أول دولة في الكومبو ...


** ماذا أكتب في كود الحفظ والحذف... لأنني عند إضافة سجل جديد رقم الطالب ( stu_no ) حقل ترقيم بالكود - يعني يبحث عن أعلى رقم ويزيده 1 - بمعنى أنه في قريد الدورات عندما أضيف سجل جديد أو سجلين لهذا الطالب سيكون حقل الربط ( cou_stu_no ) فاضي ولن يقبل الحفظ ..

لو عدلت الكود الأول إلى ( inner join ) كيف سيكون الاسناد إلى البيندنج سورس وكيف سيكون كود الحفظ .

العفو
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
العلاقات بين أكثر من جدولين ... وآلياتها ... وتعديل نوع الحقول - بواسطة rohiem - 04-03-13, 03:50 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] كود اضافة وحفظ وتعديل والحذف فى DATAGRIDVIEW atef_020 9 29,064 31-08-21, 04:59 AM
آخر رد: a7med saba
  مساعدة في كود عرض بيانات من جدولين samira20 1 2,565 18-04-19, 03:03 AM
آخر رد: حريف برمجة
  كيف يمكنني التعامل مع جدولين Ahlam 14 10,702 16-12-18, 09:13 PM
آخر رد: viv
  [سؤال] مساعدة في حفظ بيانات من جدولين mosasaad 5 4,303 22-08-16, 10:25 AM
آخر رد: سعود
  كيفية التأكد من تعبئة الحقول في جدول بقاعدة البيانات aftfm 6 3,648 06-04-16, 08:38 PM
آخر رد: aftfm
  إنشاء جريد فيو من جدولين djelloul 4 2,848 01-04-16, 11:33 PM
آخر رد: djelloul
  مثال على البحث في جدولين بالداتا قريد sql rookan 6 4,743 12-01-16, 01:17 PM
آخر رد: abdhassan
  [سؤال] طلب مساعدة في طريقة ربط جدولين اكسس 2007 moftah70 1 2,510 08-01-16, 04:18 AM
آخر رد: boudyonline
Question [سؤال] هل تصميم قاعدة البيانات صحيح و العلاقات alims 0 1,931 16-12-15, 01:12 AM
آخر رد: alims
Rainbow [سؤال] ملء داتا جريد من جدولين ويؤثر فى الادوات طالب فيجوال بيسك 0 2,593 21-06-15, 06:54 PM
آخر رد: طالب فيجوال بيسك

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


يقوم بقرائة الموضوع: