新聞中心
VB.NET還是比較常用的,于是我研究了一下VB.NET Data Grid,在這里拿出來(lái)和大家分享一下,希望對(duì)大家有用。

創(chuàng)新互聯(lián)建站專(zhuān)注于企業(yè)營(yíng)銷(xiāo)型網(wǎng)站、網(wǎng)站重做改版、德惠網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、商城系統(tǒng)網(wǎng)站開(kāi)發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為德惠等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
在以數(shù)據(jù)庫(kù)為中心的應(yīng)用程序中,主/從數(shù)據(jù)表視圖是一種非常常見(jiàn)的設(shè)計(jì)模式。在這種模式下,***數(shù)據(jù)(主表)顯示在一個(gè)用戶(hù)界面元素中(如VB.NET Data Grid),而與之相關(guān)的細(xì)節(jié)數(shù)據(jù)(從表)則根據(jù)主表的選擇作相應(yīng)的變化更新。例如:我們可以查看出版社已出版圖書(shū)的信息列表,當(dāng)選擇某種圖書(shū)時(shí),在從表中立即顯示出該圖書(shū)的銷(xiāo)售情況。
VB.NET Data Grid實(shí)現(xiàn)主/從數(shù)據(jù)表模式一般有兩種方式,一是利用一個(gè)VB.NET Data Grid控件裝入兩個(gè)相關(guān)的數(shù)據(jù)表,二是采用兩個(gè)VB.NET Data Grid控件實(shí)現(xiàn)主從模式。為便于說(shuō)明,我們采用SQL Server 2000自帶的Pubs數(shù)據(jù)庫(kù)的Titles表和Sales表進(jìn)行演示,其中Titles表記錄了某出版社的圖書(shū)目錄,而Sales表則是每種圖書(shū)的銷(xiāo)售數(shù)據(jù),兩張表中都包含title_id列。
一個(gè)VB.NET Data Grid中裝入多個(gè)相關(guān)表
我們都知道,將VB.NET Data Grid的Data Source屬性同Dataset相綁定,即可將數(shù)據(jù)表顯示在VB.NET Data Grid中,但不少初學(xué)者并不清楚:通過(guò)向Dataset中添加多個(gè)Data Table對(duì)象,每個(gè)Data Table對(duì)象裝入一張表,再設(shè)定好關(guān)聯(lián),即可在VB.NET Data Grid中顯示多張關(guān)聯(lián)表。
- 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()
- ’建立同數(shù)據(jù)庫(kù)的連接
- Dim ds As New Dataset("Book Sales")
- ’創(chuàng)建Dataset對(duì)象
- Dim Titles Table As New Data Table("Titles")
- ds.Tables.Add(Titles Table)
- ’創(chuàng)建Data Table對(duì)象(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)
- ’創(chuàng)建并填充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)
- 根據(jù)title_id列建立兩個(gè)表的關(guān)聯(lián)
- DataGrid1.DataSource = ds
- 將DataGrid1綁定到Dataset對(duì)象(即ds)
- End Sub
- End Class
需要注意的是:在單表模式下,用SqlDataAdapter對(duì)象填充Dataset時(shí),若發(fā)現(xiàn)Dataset中沒(méi)有表,就自動(dòng)創(chuàng)建一個(gè)新的 Data Table并填充;而用主從模式時(shí),應(yīng)顯示創(chuàng)建每個(gè)Data Table對(duì)象并填充,再利用Data Relation對(duì)象建立多個(gè)Data Table之間的關(guān)聯(lián),***將VB.NET Data Grid綁定到Dataset上。
運(yùn)行工程,會(huì)看到一個(gè)有加號(hào)按鈕的視圖。單擊加號(hào),窗體中出現(xiàn)裝入的所有表名。如果查看Titles表,就會(huì)發(fā)現(xiàn)在每行的旁邊有一個(gè)小加號(hào)按鈕,點(diǎn)擊加號(hào),就可以查看其銷(xiāo)售情況。
在窗體的右上部,向左的小箭頭按鈕用于回退。每查看一次銷(xiāo)售情況后,都必須用回退按鈕回到主表,顯然,這種主/從表模式的可操作性很差,也不太符合我們的操作習(xí)慣。也許,后一種方式是比較好的解決方案。
分享標(biāo)題:詳細(xì)講解VB.NETDataGrid
本文網(wǎng)址:http://www.dlmjj.cn/article/dppocsd.html


咨詢(xún)
建站咨詢(xún)
