📄 form1.vb
字号:
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows 窗体设计器生成的代码 "
Public Sub New()
MyBase.New()
'该调用是 Windows 窗体设计器所必需的。
InitializeComponent()
'在 InitializeComponent() 调用之后添加任何初始化
End Sub
'窗体重写处置以清理组件列表。
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Windows 窗体设计器所必需的
Private components As System.ComponentModel.IContainer
'注意:以下过程是 Windows 窗体设计器所必需的
'可以使用 Windows 窗体设计器修改此过程。
'不要使用代码编辑器修改它。
Friend WithEvents dgDetail As System.Windows.Forms.DataGrid
Friend WithEvents cmbMaster As System.Windows.Forms.ComboBox
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
Me.cmbMaster = New System.Windows.Forms.ComboBox()
Me.dgDetail = New System.Windows.Forms.DataGrid()
CType(Me.dgDetail, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'cmbMaster
'
Me.cmbMaster.Location = New System.Drawing.Point(8, 8)
Me.cmbMaster.Name = "cmbMaster"
Me.cmbMaster.Size = New System.Drawing.Size(216, 20)
Me.cmbMaster.TabIndex = 0
'
'dgDetail
'
Me.dgDetail.DataMember = ""
Me.dgDetail.HeaderForeColor = System.Drawing.SystemColors.ControlText
Me.dgDetail.Location = New System.Drawing.Point(8, 32)
Me.dgDetail.Name = "dgDetail"
Me.dgDetail.Size = New System.Drawing.Size(400, 232)
Me.dgDetail.TabIndex = 1
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.ClientSize = New System.Drawing.Size(416, 270)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.dgDetail, Me.cmbMaster})
Me.Name = "Form1"
Me.Text = "Form1"
CType(Me.dgDetail, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'建立几个关键的对象:
'数据集
Dim dsOrdersAndDetails As New DataSet()
'两个SqlDataAdapter,一个用来读取Orders表,
'一个用来读取Order Details表
Dim daOrders As New SqlClient.SqlDataAdapter()
Dim daDetails As New SqlClient.SqlDataAdapter()
'数据库连接
Dim conn As New SqlClient.SqlConnection()
'建立两个数据表,一个代表Orders表,
'一个代表OrderDetails表
Dim tblOrders As New DataTable()
Dim tblDetails As New DataTable()
'把两个数据表加入到数据集中
dsOrdersAndDetails.Tables.Add(tblOrders)
dsOrdersAndDetails.Tables.Add(tblDetails)
'设置数据库连接字符串
conn.ConnectionString = "Data Source=(local);Initial Catalog=Northwind;Integrated Security=SSPI"
'设置读取数据的SQL命令
daOrders.SelectCommand = New SqlClient.SqlCommand("Select * From Orders", conn)
daDetails.SelectCommand = New SqlClient.SqlCommand("Select * From [Order Details]", conn)
'打开数据库连接,填充两个数据表
conn.Open()
daOrders.Fill(tblOrders)
daDetails.Fill(tblDetails)
conn.Close()
'开始建立两个数据表之间的关联
'必须在数据表被填充以后建立关联,因为在那以前,两个数据表都是空的
'关联也无从谈起
Dim rltOrdersToDetails As DataRelation
'第一个参数是关联的名字,就像Case7_5中的OrdersOrder_x0020_Details
'第二个参数是主子段,也就是主表中的OrderID
'第三个参数是从字段,也就是从表中的OrderID
rltOrdersToDetails = New DataRelation("Orders_To_Details", _
tblOrders.Columns("OrderID"), _
tblDetails.Columns("OrderID"))
'把建立好的关联加入数据集
dsOrdersAndDetails.Relations.Add(rltOrdersToDetails)
'以下开始数据绑定
'与Case7_5中设置DataSource和DataMember属性是一回事
cmbMaster.DataSource = tblOrders
cmbMaster.DisplayMember = "CustomerID"
dgDetail.DataSource = tblOrders
dgDetail.DataMember = "Orders_To_Details"
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -