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

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

بدأه girl333 في 29 سبتمبر 2012 · 8 رد · 1,417 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

انا ابغى احصل على برنامج يعرض جدولين بداخل اداة داتا قريد واحدة مثال عليه هذي الصورة :

up313489494081.jpg

انا اشتغل على برنامج فيجول بيسك 2005 و بالنسبة للداتا بيس حقتي اسمها student_database

وفيها جدولين واحد اسمه student و في عمودين الاول number1 والعمود الثاني name1

والجدول الثاني اسمه phone و فيه عمودين الاول number1 والثاني phonenumber

هذه شكل الفورم حقتي

up313489494082.jpg

هذا الكود

 Imports System.Data 
Imports System.Data.OleDb 
Public Class تجربة 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim con As OleDbConnection 
        Dim myds As New DataSet() 

        Dim sql0 As String = "select number1,name1 from student" 
        Dim sql1 As String = "select number1,phonenumber from phone" 

        con = New OleDbConnection("Provider=Microsoft.ace.OLEDB.12.0;Data Source=student_database.accdb")

        Try 
            Dim dastudent As New OleDb.OleDbDataAdapter(sql0, con) 
            Dim daphone As New OleDb.OleDbDataAdapter(sql1, con) 

            dastudent.Fill(myds, "student") 
            daphone.Fill(myds, "phone") 

            Dim r As DataRelation = New DataRelation("student-phone", myds.Tables("student").Columns("number1"), myds.Tables("phone").Columns("number1"), True)
             myds.Relations.Add(r) 

            DataGridView1.DataSource = myds.Tables("student") 

        Catch el As OleDbException 
            Label1.Text = el.Message 
        End Try 

    End Sub 

End Class

لما اسوي للبرنامج تشغيل يطلع بس جدول واحد هو student وانا ابغاه يطلع كل الجدولين زي اول صورة موجود بالموضوع

#2

Dim Tran_Detail as New DataRelation("ds", الجدول الاول .Columns("PK"), الجدول الثاني("FK"))

تم تعديل هذه المشاركة بواسطة md_mostafa في 1 أكتوبر 2012 في 16:35

#3
            DataGridView1.DataSource = myds.Tables("student")

            DataGridView1.DataSource = myds.Tables("phone")

ضيف الجدول الثاني كمان للجريد

#4
md_mostafa كتب:

Dim Tran_Detail as New DataRelation("ds", الجدول الاول .Columns("PK"), الجدول الثاني("FK"))

انا في الجدول الاول و هو student جعلت العمود number1 هو ال PK وتم الضبط عن طريق برنامج الاكسيس 2007

بالنسبة للجدول الثاني و هو phone لم اضع بهذا الجدول PK اطلاقا ، هل افهم منك اني لابد أن اجعل عمود number1 في جدول ال phone يكون FK ؟ و اذا كان كذلك كيف الطريقه ؟

اضفت الجدول الثاني للجريد و كانت النتيجة انه عرض الجدول الثاني فقط

تم تعديل هذه المشاركة بواسطة girl333 في 1 أكتوبر 2012 في 21:59

#5

لازم يبقى فيه علاقة بين الجدولين ممكن تتعمل من الاكسس أوم جوه الدوت نت

يعنى NO بيكون PK في جدول الطالب ونفسه بيبقى FK في جدول التليفونات وينهم علاقه 1 to many

ويتم تحديد no اللى هو في جدول الطالب as PK ونفس الحقل في جدول التليفونات as fk في العلاقة ولما تنضاف العلاقة للds هاتشد الجدولين جرب ؟؟

#6

عمل العلاقة جوة الدوت نت

Dim relation As DataRelation
            Dim table1Column As DataColumn
            Dim table2Column As DataColumn
            'retrieve column
            table1Column = ds.Tables("Table1").Columns(0)
            table2Column = ds.Tables("table2").Columns(0)
            'relating tables
            relation = New DataRelation("relation", table1Column, table2Column)
            'assign relation to dataset
            ds.Relations.Add(relation)
#7
md_mostafa كتب:

لازم يبقى فيه علاقة بين الجدولين ممكن تتعمل من الاكسس أوم جوه الدوت نت

يعنى NO بيكون PK في جدول الطالب ونفسه بيبقى FK في جدول التليفونات وينهم علاقه 1 to many

ويتم تحديد no اللى هو في جدول الطالب as PK ونفس الحقل في جدول التليفونات as fk في العلاقة ولما تنضاف العلاقة للds هاتشد الجدولين جرب ؟؟

بالنسبة للاكسيس ما سبق اني ربطت بين الجدولين

لكن الحين ربطت بينهم و عملت علاقة one to many بين الجدولين و تغير شكل الداتا بيس للشكل التالي

up313491833591.jpg

مع اني للحين ماعرفت كيف اخلي number1 اللي جدول ال phone تكون FK ....

أما PK ماعندي فيها مشكلة

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

(Dim r As DataRelation = New DataRelation("student-phone", myds.Tables("student").Columns("number1"), myds.Tables("phone").Columns("number1"), True

(myds.Relations.Add(r

لكن ماضبط معي للاسف

البرنامج حقي وضعته في المرفقات اذا امكنك الاطلاع عليه و شكرا

عرض جدولين بداتا قريد واحدة.rar

تم تعديل هذه المشاركة بواسطة girl333 في 2 أكتوبر 2012 في 22:29

#8

لــ DataGridView لا تدعم إلا إظهار البيانات من جدول واحد , لكن الــ DataGrid القديمة فيها هذه الميزة , حيث يظهر سهم جانب السجل و عند النقر عليه يأخذك للسجل المقابل , لإظهار الــ DataGrid قم بنقرة يمينية على صندوق الأدوات , ثم Choose Items ثم ابحث عن DataGrid التي جانبها System.Windows.Forms

ونفس الكود وهاتشتغل زى الفل وهارفق لك التعديل

test1.rar

تم تعديل هذه المشاركة بواسطة md_mostafa في 3 أكتوبر 2012 في 13:05

1
#9
md_mostafa كتب:

لــ DataGridView لا تدعم إلا إظهار البيانات من جدول واحد , لكن الــ DataGrid القديمة فيها هذه الميزة , حيث يظهر سهم جانب السجل و عند النقر عليه يأخذك للسجل المقابل , لإظهار الــ DataGrid قم بنقرة يمينية على صندوق الأدوات , ثم Choose Items ثم ابحث عن DataGrid التي جانبها System.Windows.Forms

ونفس الكود وهاتشتغل زى الفل وهارفق لك التعديل

جزاك الله خير و نفع بعلمك

احسنت باكتشاف الخطأ

الحقيقة ان الكود الذي وضعته أنا اخذته من كتاب وكان يعرض النتيجة في DataGrid1 لكن انا لم اجدها موجودة ضمن صندوق الأدوات فاستبدلتها بـ DataGridView1 :) :) :)

الآن ضبط معي الكود شكرا جزيلا لك .. الله يوفقك لكل مايحبه و يرضاه .. آآمين

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

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

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

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

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