Mega Code Archive
Define Table relation and load combined data into DataGrid
Imports System
Imports System.Drawing
Imports System.Collections
Imports System.ComponentModel
Imports System.Windows.Forms
Imports System.Data
Imports System.Data.SqlClient
Public Class MainClass
Shared Sub Main( )
Application.Run(New ADOForm1() )
End Sub
End Class
Public Class ADOForm1
Inherits System.Windows.Forms.Form
Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid
Private components As System.ComponentModel.Container
' private System.Data.ADO.ADOConnection myConnection;
Private myConnection As System.Data.SqlClient.SqlConnection
Private myDataSet As System.Data.DataSet
Private myCommand As System.Data.SqlClient.SqlCommand
Private myCommand2 As System.Data.SqlClient.SqlCommand
Private myDataAdapter As System.Data.SqlClient.SqlDataAdapter
Private myDataAdapter2 As System.Data.SqlClient.SqlDataAdapter
Public Sub New( )
InitializeComponent( )
' create the connection object and open it
Dim connectionString As String = _
"server=localhost; uid=sa; " & _
"pwd=YourPassword; database=northwind"
myConnection = _
New System.Data.SqlClient.SqlConnection(connectionString)
myConnection.Open( )
' create the DataSet and set a property
myDataSet = New System.Data.DataSet( )
myDataSet.CaseSensitive = True
' create the SqlCommand object and assign the
' connection and the select statement
myCommand = New System.Data.SqlClient.SqlCommand( )
myCommand.Connection = myConnection
myCommand.CommandText = "Select * from Employees"
myCommand2 = New System.Data.SqlClient.SqlCommand( )
myCommand2.Connection = myConnection
myCommand2.CommandText = "Select * from Orders"
' create the myDataAdapter object and pass in the
' SQL Command object and establish the table mappings
myDataAdapter = New System.Data.SqlClient.SqlDataAdapter( )
myDataAdapter2 = New System.Data.SqlClient.SqlDataAdapter( )
myDataAdapter.SelectCommand = myCommand
myDataAdapter2.SelectCommand = myCommand2
myDataAdapter.TableMappings.Add("Table", "Employees")
myDataAdapter2.TableMappings.Add("Table", "Orders")
' Tell the myDataAdapter object to fill the DataSet
myDataAdapter.Fill(myDataSet)
myDataAdapter2.Fill(myDataSet)
Dim myDataRelation As System.Data.DataRelation
Dim dataColumn1 As System.Data.DataColumn
Dim dataColumn2 As System.Data.DataColumn
dataColumn1 = _
myDataSet.Tables("Employees").Columns("EmployeeID")
dataColumn2 = _
myDataSet.Tables("Orders").Columns("EmployeeID")
myDataRelation = New System.Data.DataRelation( _
"EmployeesToOrders", dataColumn1, dataColumn2)
myDataSet.Relations.Add(myDataRelation)
Dim dataSetView As DataViewManager = _
myDataSet.DefaultViewManager
' display it in the grid
DataGrid1.DataSource = _
dataSetView
DataGrid1.DataMember = "Employees"
End Sub 'New
Private Sub InitializeComponent( )
Me.components = New System.ComponentModel.Container( )
Me.dataGrid1 = New System.Windows.Forms.DataGrid( )
dataGrid1.Location = New System.Drawing.Point(48, 24)
dataGrid1.Size = New System.Drawing.Size(368, 160)
dataGrid1.TabIndex = 0
Me.Text = "ADOFrm1"
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(464, 273)
Me.Controls.Add(dataGrid1)
End Sub
End Class