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

العلاقات في الفيجول دوت نت 2008

بدأه fadhelabass في 4 أكتوبر 2009 · 5 رد · 700 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

'كتابة نصي الاستعلام عن الجدولين وتخزينهما

SQL(0) = "Select ID,name from Emp1"

SQL(1) = "Select ID,City,phone,mobile,Email from Emp2"

' فتح الاتصال

MyConn.Open()

' إفراغ الداتاسيت من الجداول

MyDS.Clear()

'الآن تعبئة الجدول الأو وهو الأب وتخزينه في الداتاسيت

MyDA1 = New OleDbDataAdapter(SQL(0), MyConn)

MyDA1.MissingSchemaAction = MissingSchemaAction.AddWithKey

MyDA1.MissingMappingAction = MissingMappingAction.Passthrough

MyDA1.Fill(MyDS, "Emp1")

'الآن تعبئة الجدول الثاني وهو الإبن وتخزينه في الداتاسيت

MyDA2 = New OleDbDataAdapter(SQL(1), MyConn)

MyDA2.MissingSchemaAction = MissingSchemaAction.AddWithKey

MyDA2.MissingMappingAction = MissingMappingAction.Passthrough

MyDA2.Fill(MyDS, "Emp2")

' بعد تعبئة الداتاسيت بالجدولين نستطيع معالجتهما في وضع منفصل لذلك سوف نقوم بقفل الاتصال بقاعدة البيانت

MyConn.Close()

'تخزين بيانات العمودين الأب والإبن ذوي العلاقة

dc1 = MyDS.Tables("Emp1").Columns("ID")

dc2 = MyDS.Tables("Emp2").Columns("ID")

'تكوين العلاقه بين الجدول الأب والإبن

Try

datarelation = New DataRelation("Emp12", dc1, dc2, True)

MyDS.Relations.Clear()

MyDS.Relations.Add(datarelation)

Catch ex As Exception

MsgBox(ex.Message)

End Try

End Sub

ارجو تعليمي وبصورة مبسطة العلاقات

#2

أخي الحبيب على ما أظن اني قمت بالرد على موضوعك هذا في احد المواضيع الخاصة وانت سألت السؤال في موضوعين ورديت عليك فيها فياليت تحاول الاقتصار على موضوع واحد

حيث كثرة المواضيع لاتنفع وسوف اقوم قريبا بعمل شرح مفصل لهذه التقنية في المنتدى

أنا الرجل الضرب الذي تعرفونه***خشاش كرأس الحية المتوقد

لوكنت وغلاً في الرجال لضرني**** حسن جرائتي ومقتدي

منتديات طريق الهداية

#3

جزاك الله خيرا وانا بانتضارك

ارجو تعليمي الربط جزاك الله خيرا لاني بامس الحاجة الية ولم اجد الموظوع الذي اجبتني عليه مسبقا ارجو من اساتذتي الكرام ان يعينوني

تم تعديل هذه المشاركة بواسطة fadhelabass في 5 أكتوبر 2009 في 09:38

#4

الى اساتذتي الاجلاء

ارجو تصحيح الكود او تعليمي انشاء العلاقات

'كتابة نصي الاستعلام عن الجدولين وتخزينهما
SQL(0) = "Select ID,name from Emp1"
SQL(1) = "Select ID,City,phone,mobile,Email from Emp2"
' فتح الاتصال
MyConn.Open()
' إفراغ الداتاسيت من الجداول
MyDS.Clear()
'الآن تعبئة الجدول الأو وهو الأب وتخزينه في الداتاسيت
MyDA1 = New OleDbDataAdapter(SQL(0), MyConn)
MyDA1.MissingSchemaAction = MissingSchemaAction.AddWithKey
MyDA1.MissingMappingAction = MissingMappingAction.Passthrough
MyDA1.Fill(MyDS, "Emp1")
'الآن تعبئة الجدول الثاني وهو الإبن وتخزينه في الداتاسيت
MyDA2 = New OleDbDataAdapter(SQL(1), MyConn)
MyDA2.MissingSchemaAction = MissingSchemaAction.AddWithKey
MyDA2.MissingMappingAction = MissingMappingAction.Passthrough
MyDA2.Fill(MyDS, "Emp2")
' بعد تعبئة الداتاسيت بالجدولين نستطيع معالجتهما في وضع منفصل لذلك سوف نقوم بقفل الاتصال بقاعدة البيانت
MyConn.Close()
'تخزين بيانات العمودين الأب والإبن ذوي العلاقة
dc1 = MyDS.Tables("Emp1").Columns("ID")
dc2 = MyDS.Tables("Emp2").Columns("ID")
'تكوين العلاقه بين الجدول الأب والإبن
Try
datarelation = New DataRelation("Emp12", dc1, dc2, True)
MyDS.Relations.Clear()
MyDS.Relations.Add(datarelation)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
#5
'كتابة نصي الاستعلام عن الجدولين وتخزينهما
SQL(0) = "Select ID,name from Emp1"
SQL(1) = "Select ID,City,phone,mobile,Email from Emp2"
' فتح الاتصال
MyConn.Open()
' إفراغ الداتاسيت من الجداول
MyDS.Clear()
'الآن تعبئة الجدول الأو وهو الأب وتخزينه في الداتاسيت
MyDA1 = New OleDbDataAdapter(SQL(0), MyConn)
MyDA1.MissingSchemaAction = MissingSchemaAction.AddWithKey
MyDA1.MissingMappingAction = MissingMappingAction.Passthrough
MyDA1.Fill(MyDS, "Emp1")
'الآن تعبئة الجدول الثاني وهو الإبن وتخزينه في الداتاسيت
MyDA2 = New OleDbDataAdapter(SQL(1), MyConn)
MyDA2.MissingSchemaAction = MissingSchemaAction.AddWithKey
MyDA2.MissingMappingAction = MissingMappingAction.Passthrough
MyDA2.Fill(MyDS, "Emp2")
' بعد تعبئة الداتاسيت بالجدولين نستطيع معالجتهما في وضع منفصل لذلك سوف نقوم بقفل الاتصال بقاعدة البيانت
MyConn.Close()
'تخزين بيانات العمودين الأب والإبن ذوي العلاقة
dc1 = MyDS.Tables("Emp1").Columns("ID")
dc2 = MyDS.Tables("Emp2").Columns("ID")
'تكوين العلاقه بين الجدول الأب والإبن
Try
datarelation = New DataRelation("Emp12", dc1, dc2, True)
MyDS.Relations.Clear()
MyDS.Relations.Add(datarelation)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub

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

يعني مثلا الحقل catid المختص بالجدول categroy يكون موجود في الجدول product وتقوم بعمل ربط بين الحقل categoryID الموجودة في الجدول category والحقل catid الموجود في الجدول product ويجب ان يكون الحقل الرئيسي الموجود في الجدول categroy له مفتاح رئيسي حتى يتميز عن الحقل الفرعي

بعد ذلك إن كنت مثلا تريد ان تعمل علاقة بين الاداة combobox والاداة Datagrid يجب ان تعمل التالي:

1-يجب ان تكون قيمة الخاصية datasource لكلا الاداتين هي نفسها يعني يكون MyDS وليي هكذا MyDS.Tables("tmp1")

combobox.datasoucre=MyDS
Datagrid.DataSource=MyDS

2- قم بجعل قيمة الخاصية displaymeber للاداة combobx هو اسم الجدول الرئيسي متبوع بنقطة ومن ثم باسم الخاصية لوفرضان أن الجدول الرئيسي هو الجدول Categroy والفرعي هو product أي هكذا

Combobox.DisplayMember="Category.CategoryName"

وكذلك الخاصية ValueMember يجب ان تكون قيمتها بنفس الطريقة أي هكذا

Combobox.ValueMember="Category.CategoryId"

3- وهو اهم شيء قم بجعل قيمة الخاصية DataMember للأداة DataGrid هو اسم الجدول ثم نقطة ثم اسم العلاقة أي هكذا

Datagrid.dataMember="Category.Emp12"

===============

فقط هذا كل شيء

أنا الرجل الضرب الذي تعرفونه***خشاش كرأس الحية المتوقد

لوكنت وغلاً في الرجال لضرني**** حسن جرائتي ومقتدي

منتديات طريق الهداية

#6

جزاك الله خيرا يا استاذي العزيز

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