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

كود ربط حدولين بينهما علاقة بdatagridview

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

السلام عليكم يا اهل الاسلام

بحث كثيرا عن كود لتعبئة datagridview من جدولين بينهما علاقة لكن للاسف كل الاكواد لم تشتغل معي

وهذا آخر ما جربت وجدته في موقع اجنبي

        	' Dim SQLstr As String = " select * from TabCondidats inner join  tabFacture on TabCondidats.NumContrat =tabFacture.Num_contrat"


        	'Open the Connetion
        	Con.Open()
        	'Dataset that holds data in disconnected mode
        	Dim ds As New DataSet

        	'Two commands for two tables (tab1 and tab2)
        	Dim cmd1 As OleDbCommand
        	Dim cmd2 As OleDbCommand

        	'Two datapaters to fill the dataset from two tables
        	Dim adp1 As OleDbDataAdapter
        	Dim adp2 As OleDbDataAdapter

        	'This handles the relationship between the two columns
        	Dim datarelation As DataRelation
        	Dim dc1 As DataColumn
        	Dim dc2 As DataColumn

        	'It's not important but gives your code more better way to
        	'compare strings between tables
        	ds.CaseSensitive = True

        	'First command for first table
        	cmd1 = New OleDbCommand
        	cmd1.Connection = Con
        	cmd1.CommandText = "SELECT NumContrat ,Nom FROM TabCondidats"


        	'Second command for Second table
        	cmd2 = New OleDbCommand
        	cmd2.Connection = Con
        	cmd2.CommandText = "SELECT * FROM TabFacture"

        	'Now , we will fill the first table and add it to the dataset
        	adp1 = New OleDbDataAdapter
        	adp1.SelectCommand = cmd1
        	adp1.TableMappings.Add("Table", "TabCondidats")
        	adp1.Fill(ds)


        	'As we did in the previous step , here for the Second table
        	adp2 = New OleDbDataAdapter
        	adp2.SelectCommand = cmd2
        	adp2.TableMappings.Add("Table", "TabFacture")
        	adp2.Fill(ds)



        	dc1 = ds.Tables("TabCondidats").Columns("NumCondidat")
        	dc2 = ds.Tables("TabFacture").Columns("Num_Condidat")

        	'Here we combined two datacolumns to the relations obj
        	datarelation = New DataRelation("TabCondidats and TabFacture", dc1, dc2)
        	ds.Relations.Add(datarelation)

        	'Simple one , bind the dataset after all operation to the
        	'Datagrid
        	GridSuivie_Consomation.DataSource = ds.DefaultViewManager
        	'Show the first table in the grid because it's the primary table
        	GridSuivie_Consomation.DataMember = "TabCondidats"

افيدونا زادكم الله علما

ربط جدولين بداتا قريد فيو.rar

#2

السلام عليكم ..

  1. الــ DataGridView لا تدعم إلا إظهار البيانات من جدول واحد , لكن الــ DataGrid القديمة فيها هذه الميزة , حيث يظهر سهم جانب السجل و عند النقر عليه يأخذك للسجل المقابل , لإظهار الــ DataGrid قم بنقرة يمينية على صندوق الأدوات , ثم Choose Items ثم ابحث عن DataGrid التي جانبها System.Windows.Forms و ليس الخاصة بالويب .
  2. غالبا ان تحتاج لعمل ذلك لأن الــ DataGridView الحديثة تمكنك من إظهار اسم الشخص بدلا من رقمه , عن طريق إضافة عمود من نوع DataGridViewCombobox الذي نربطه من جدول الأشخاص ..
  3. تصحيح الكود :
    Open_Con()
            	'Dataset that holds data in disconnected mode
            	Dim ds As New DataSet
    
            	'Two commands for two tables (tab1 and tab2)
            	Dim cmd1 As OleDbCommand
            	Dim cmd2 As OleDbCommand
    
            	'Two datapaters to fill the dataset from two tables
            	Dim adp1 As OleDbDataAdapter
            	Dim adp2 As OleDbDataAdapter
    
            	'This handles the relationship between the two columns
            	Dim datarelation As DataRelation
            	Dim dc1 As DataColumn
            	Dim dc2 As DataColumn
    
            	'It's not important but gives your code more better way to
            	'compare strings between tables
            	ds.CaseSensitive = True
    
            	'First command for first table
            	cmd1 = New OleDbCommand
            	cmd1.Connection = Con
            	'cmd1.CommandText = "SELECT NumContrat ,Nom FROM TabCondidats"
            	cmd1.CommandText = "SELECT * FROM TabCondidats"
    
    
            	'Second command for Second table
            	cmd2 = New OleDbCommand
            	cmd2.Connection = Con
            	cmd2.CommandText = "SELECT * FROM TabFacture"
    
            	'Now , we will fill the first table and add it to the dataset
            	adp1 = New OleDbDataAdapter
            	adp1.SelectCommand = cmd1
            	adp1.TableMappings.Add("Table", "TabCondidats")
            	adp1.Fill(ds)
    
    
            	'As we did in the previous step , here for the Second table
            	adp2 = New OleDbDataAdapter
            	adp2.SelectCommand = cmd2
            	adp2.TableMappings.Add("Table", "TabFacture")
            	adp2.Fill(ds)
    
    
    
            	'dc1 = ds.Tables("TabCondidats").Columns("NumCondidat")
            	dc1 = ds.Tables("TabCondidats").Columns("NumContrat")
            	'dc2 = ds.Tables("TabFacture").Columns("Num_Condidat")
            	dc2 = ds.Tables("TabFacture").Columns("Num_Contrat")
    
            	'Here we combined two datacolumns to the relations obj
            	datarelation = New DataRelation("TabCondidats and TabFacture", dc1, dc2)
            	ds.Relations.Add(datarelation)
    
            	'Simple one , bind the dataset after all operation to the
            	'Datagrid
            	DataGrid1.DataSource = ds.DefaultViewManager
            	'Show the first table in the grid because it's the primary table
            	DataGrid1.DataMember = "TabCondidats"
    
            	Close_Con()

1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#3

جزاك الله خيرا اخي حسام

اشتغل الكود لكن للاسف كنت اطمع في واجهة افضل من هذه

كنت اتمنى ان يظهر الحدول عادي و تكون فيه الحقول المنتقاة من الجدولين

هذا الشكل لن يكون مريحا للمستعمل

هل يمكن ان يظهر استعلام انا وضعته في برنامح الاكسس في datagridviewer على شكل حدول عادي؟

فانا اريد ارشفة الفواتير على الورق

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

و يتم ذلك في نهاية كل سنة من الاستهلاك

و إذا كان طباعته مباشرة بدون المرور على gridviewer فهو مقبول

و الا ساكون مضطرا الى تكرار ي اسم المنخرط في جدولين وهذا ما لا اتمناه

#4

السلام عليكم ..

  1. يمكن تحميل البيانات من استعلام كأنها جدول , لكن لا أعرف ما هي طريقة الحفظ التي تستخدمها و و هل ستعمل أم لا ..
  2. يمكن استخدام dataGridComboBoxColumn يظهر اسم الشخص بدلا من رقمه .
1

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

#5

1- انا لا اريد ان احفظها اريد ان اطبعها إن كان ممكنا

2-اذا لم أجد سبيلا سافعلها والتقنية كما علمتني في مشاركة سابقة لم انساها

هل يمكن تكرير بيانات حقل الرقم في gridviewer ثم نبدل احدهما dataGridComboBoxColumn؟

#6

السلام عليكم ..

اقتباس
هل يمكن تكرير بيانات حقل الرقم في gridviewer ثم نبدل احدهما dataGridComboBoxColumn؟
نعم يمكن :
SELECT ID as id1 , ID as id2 FROM MyTable

او يمكن بإضافة عمود جديد في الــ DataGridView و ربطى بخاصية الــ DataProperty بالعمود الذي تريده .

لا إله إلا الله ... محمد رسول الله

لو كانت مشاركتي مفيدة و تريد تشجيعي على المزيد من العطاء , فضلا قم بتقييم المشاركة

المعرًف القديم : houssam11350_11350

من مواضيعي : ArabGenCode : مولد كود و إجراءات مخزنة و واجهات لجداول سيكوال سيرفر

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