04-03-13, 03:50 PM
جزاك الله خيراً أستاذي الفاضل ...
بالنسبة لسيرفر sql فقد اتبعت تعليماتك وانحلت المشكلة ... ولله الحمد ولك جزيل الثواب .
وبالنسبة لعملية الربط فلم أوفق تماماً في إسناد جملة ( inner join ) لـ (bindingsource) ... حيث أنه في الجدول الثاني ( القريد ) يظهر كافة الحقول ... الخ ...
ولقد قمت بعملية الربط باستخدام مطول (لأنني مبتدئ) لجملة Relations وإليك توضيح لمثل ما قمت به في الأكواد التالية
أنا أعتقد ( بل أكاد أجزم ) بأنني طولت وكررت في الكود ولكن هذا ما وصل إليه فهمي ....
مشكلتي الآن :
** مثلاً الحقل ( stu_contry ) هو كومبو يأخذ قيمته من جدول الدول بالكود التالي
ولكنه يظهر أول خيار في الكمبو وإذا انتقلت لسجل طالب ليست مسجلة له دولة يظهر أول دولة في الكومبو ...
** ماذا أكتب في كود الحفظ والحذف... لأنني عند إضافة سجل جديد رقم الطالب ( stu_no ) حقل ترقيم بالكود - يعني يبحث عن أعلى رقم ويزيده 1 - بمعنى أنه في قريد الدورات عندما أضيف سجل جديد أو سجلين لهذا الطالب سيكون حقل الربط ( cou_stu_no ) فاضي ولن يقبل الحفظ ..
لو عدلت الكود الأول إلى ( inner join ) كيف سيكون الاسناد إلى البيندنج سورس وكيف سيكون كود الحفظ .
العفو
بالنسبة لسيرفر 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 ) كيف سيكون الاسناد إلى البيندنج سورس وكيف سيكون كود الحفظ .
العفو

