詳細講解VB.NET Data Grid
VB.NET還是比較常用的,于是我研究了一下VB.NET Data Grid,在這里拿出來和大家分享一下,希望對大家有用。
在以數據庫為中心的應用程序中,主/從數據表視圖是一種非常常見的設計模式。在這種模式下,***數據(主表)顯示在一個用戶界面元素中(如VB.NET Data Grid),而與之相關的細節數據(從表)則根據主表的選擇作相應的變化更新。例如:我們可以查看出版社已出版圖書的信息列表,當選擇某種圖書時,在從表中立即顯示出該圖書的銷售情況。
VB.NET Data Grid實現主/從數據表模式一般有兩種方式,一是利用一個VB.NET Data Grid控件裝入兩個相關的數據表,二是采用兩個VB.NET Data Grid控件實現主從模式。為便于說明,我們采用SQL Server 2000自帶的Pubs數據庫的Titles表和Sales表進行演示,其中Titles表記錄了某出版社的圖書目錄,而Sales表則是每種圖書的銷售數據,兩張表中都包含title_id列。
一個VB.NET Data Grid中裝入多個相關表
我們都知道,將VB.NET Data Grid的Data Source屬性同Dataset相綁定,即可將數據表顯示在VB.NET Data Grid中,但不少初學者并不清楚:通過向Dataset中添加多個Data Table對象,每個Data Table對象裝入一張表,再設定好關聯,即可在VB.NET Data Grid中顯示多張關聯表。
- Imports System.Data.SqlClient
- ’引用SqlClient命名空間
- Public Class Form1
- Const Connection String As String = "integrated security=sspi;
- initial catalog=Pubs; data source=(local)"
- ’定義連接字符串
- Private Sub Button1_Click(By Val sender As Object,
By Val e As System.EventArgs) Handles Button1.Click- Dim cn As New SqlConnection (Connection String)
- Cn. Open()
- ’建立同數據庫的連接
- Dim ds As New Dataset("Book Sales")
- ’創建Dataset對象
- Dim Titles Table As New Data Table("Titles")
- ds.Tables.Add(Titles Table)
- ’創建Data Table對象(Titles表),加入Dataset
- Dim GetTitlesString As String = "Select * From Titles"
- Dim da As New SqlDataAdapter(GetTitlesString, cn)
- da.Fill(Titles Table)
- ’填充Data Table
- da.Dispose()
- Dim Sales Table As New Data Table("Sales")
- ds.Tables.Add(Sales Table)
- Dim GetSalesString As String = "Select * From Sales"
- da = New SqlDataAdapter(GetSalesString, cn)
- da.Fill(Sales Table)
- ’創建并填充Sales表
- da.Dispose()
- cn.Close()
- Dim relation As New Data Relation("Title Sales", TitlesTable.
Columns("title_id"),SalesTable.Columns("title_id"))- ds.Relations.Add(relation)
- 根據title_id列建立兩個表的關聯
- DataGrid1.DataSource = ds
- 將DataGrid1綁定到Dataset對象(即ds)
- End Sub
- End Class
需要注意的是:在單表模式下,用SqlDataAdapter對象填充Dataset時,若發現Dataset中沒有表,就自動創建一個新的 Data Table并填充;而用主從模式時,應顯示創建每個Data Table對象并填充,再利用Data Relation對象建立多個Data Table之間的關聯,***將VB.NET Data Grid綁定到Dataset上。
運行工程,會看到一個有加號按鈕的視圖。單擊加號,窗體中出現裝入的所有表名。如果查看Titles表,就會發現在每行的旁邊有一個小加號按鈕,點擊加號,就可以查看其銷售情況。
在窗體的右上部,向左的小箭頭按鈕用于回退。每查看一次銷售情況后,都必須用回退按鈕回到主表,顯然,這種主/從表模式的可操作性很差,也不太符合我們的操作習慣。也許,后一種方式是比較好的解決方案。
【編輯推薦】