1 Previous Next 

DataGridView: Master Detail grids using the bindingsource (without the designer)


To create Master/Detail grids with the DataGridView is different than with a Datagrid 

To try this Tip you need only one form, with two DataGridViews dragged on it and paste in the code bellow.

 

Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
        Dim strConn As String = _
        "Server = .\SQLEXPRESS;Database = NorthWind;" & _
           "Integrated Security = SSPI;"
        Dim conn As New SqlClient.SqlConnection(strConn)
        Dim ds As New DataSet
        Dim dt1 As New DataTable
        Dim dt2 As New DataTable
        ds.Tables.Add(dt1)
        ds.Tables.Add(dt2)
        Dim da1 As New SqlClient.SqlDataAdapter _
          ("Select * from Orders", conn)
        Dim da2 As New SqlClient.SqlDataAdapter _
          ("Select * from [Order Details]", conn)
        da1.FillSchema(dt1, SchemaType.Mapped)
        da2.FillSchema(dt2, SchemaType.Mapped)
        Dim rel As New DataRelation("FKOrders_Detail_Orders", _
                   ds.Tables(0).Columns("OrderID"), _
                   ds.Tables(1).Columns("OrderID"))
        ds.Relations.Add(rel)
        Dim bsOrders As New BindingSource
        bsOrders.DataMember = ds.Tables(0).TableName
        bsOrders.DataSource = ds
        DataGridView1.DataSource = bsOrders
        Dim bsOrderDetails As New BindingSource
        bsOrderDetails.DataSource = bsOrders
        bsOrderDetails.DataMember = "FKOrders_Detail_Orders"
        DataGridView2.DataSource = bsOrderDetails
        da1.Fill(dt1)
        da2.Fill(dt2)
    End Sub
End Class



1 Previous Next