Results 1 to 4 of 4

Thread: Parent/Child/GrandChild

Threaded View

  1. #1

    Thread Starter
    New Member
    Join Date
    Mar 2010
    Posts
    2

    Parent/Child/GrandChild

    My question is for VB.NET 2008

    I have three tables:

    Customer (Parent)
    AssignedApp (Child)
    Application (GrandChild)


    Assigned App is simply an associative table used to relate the Customer Table to The Applications table. I am able to set up a Parent/Child relationship between Customer and Assigned App, but not to the grandchild table. Here is the code I have used for the initial Parent/Child, but would actually like to not show the child data, but actually the grandchild data.

    Imports System
    Imports System.Data
    Imports System.Data.SqlClient
    Imports System.Windows.Forms

    Public Class Form3
    Inherits System.Windows.Forms.Form

    Public Sub New()

    ' This call is required by the Windows Form Designer.
    InitializeComponent()

    ' Add any initialization after the InitializeComponent() call.
    txtCustomer.Dock = DockStyle.Fill
    dgvDetail.Dock = DockStyle.Fill

    Dim splitContainer1 As New SplitContainer()
    splitContainer1.Dock = DockStyle.Fill
    splitContainer1.Orientation = Orientation.Horizontal
    splitContainer1.Panel1.Controls.Add(txtCustomer)
    splitContainer1.Panel1.Controls.Add(dgvDetail)

    Me.Controls.Add(splitContainer1)
    Me.Text = "DataGridView master/detail demo"

    End Sub

    Private dvMaster As New DataView
    Private bsMaster As New BindingSource()
    Private txtCustomer As New TextBox
    Private dgvDetail As New DataGridView()
    Private bsDetail As New BindingSource()

    Private Sub Form3_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    ' Bind the DataGridView controls to the BindingSource
    ' components and load the data from the database.
    dgvDetail.DataSource = bsDetail

    GetData()
    txtCustomerName.DataBindings.Add("Text", dvMaster, "CustName")

    ' Configure the details DataGridView so that its columns automatically
    ' adjust their widths when the data changes.
    dgvDetail.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells

    End Sub

    Private Sub GetData()
    Try
    Try
    ' Specify a connection string.
    Dim connectionString As String = _
    "Integrated Security=SSPI;Persist Security Info=False;" & _
    "Initial Catalog=AccessControl;Data Source=localhost"
    Dim cn As New SqlConnection(connectionString)

    ' Create a DataSet.
    Dim ds As New DataSet()

    ' Add data from the Customer table to the DataSet.
    Dim masterDataAdapter As New SqlDataAdapter("select * from Customer", cn)
    masterDataAdapter.Fill(ds, "Customer")

    ' Add data from the AssignedApp table to the DataSet.
    Dim detailsDataAdapter As New SqlDataAdapter("select * from AssignedApp", cn)
    detailsDataAdapter.Fill(ds, "AssignedApp")

    ' Establish a relationship between Customer and AssignedApp.
    Dim relation As New DataRelation("CustomerAssignedApp", _
    ds.Tables("Customer").Columns("CustomerID"), _
    ds.Tables("AssignedApp").Columns("CustomerID"))
    ds.Relations.Add(relation)

    ' Bind the master data connector to the Customer table.
    bsMaster.DataSource = ds
    bsMaster.DataMember = "Customer"

    dvMaster = New DataView(ds.Tables("Customer"))

    ' Bind the details data connector to the master data connector,
    ' using the DataRelation name to filter the information in the
    ' details table based on the current row in the master table.
    bsDetail.DataSource = bsMaster
    bsDetail.DataMember = "CustomerAssignedApp"

    Catch ex As SqlException
    MessageBox.Show("To run this example, replace the value of the " & _
    "connectionString variable with a connection string that is " & _
    "valid for your system.")
    End Try

    End Sub
    End Class
    Last edited by bfullen; Mar 11th, 2010 at 02:33 PM. Reason: To modify title to reflect .NET version

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width