用户名:  密码:
兄弟在线   

标题:Visual Basic.NET实现主/从数据表视图

作者:译名 来源:网络 时间:2011-09-15

  摘 要 主/从数据表是浏览关联数据表的有效模式,本文简单介绍了实现主/从数据表视图的两种方式。

  关键词 主从数据表、Dataset、Data Grid、关联

  一、简介

  在以数据库为中心的应用程序中,主/从数据表视图是一种非常常见的设计模式。在这种模式下,顶级数据(主表)显示在一个用户界面元素中(如Data Grid),而与之相关的细节数据(从表)则根据主表的选择作相应的变化更新。例如:我们可以查看出版社已出版图书的信息列表,当选择某种图书时,在从表中立即显示出该图书的销售情况。

  在.NET中实现主/从数据表模式一般有两种方式,一是利用一个Data Grid控件装入两个相关的数据表,二是采用两个Data Grid控件实现主从模式。为便于说明,我们采用SQL Server 2000自带的Pubs数据库的Titles表和Sales表进行演示,其中Titles表记录了某出版社的图书目录,而Sales表则是每种图书的销售数据,两张表中都包含title_id列。

  二、一个Data Grid中装入多个相关表

  我们都知道,将Data Grid的Data Source属性同Dataset相绑定,即可将数据表显示在Data Grid中,但不少初学者并不清楚:通过向Dataset中添加多个Data Table对象,每个Data Table对象装入一张表,再设定好关联,即可在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之间的关联,最后将Data Grid绑定到Dataset上。


(图1:Data Grid中装入两张表)[OT_page]

 

  三、用两个Data Grid实现主/从数据表

  更有效的解决方案是使用两个Data Grid控件,主、从表均可见。对主表上某行进行选择,会立即引发从表内容的改变。
建立工程,添加一个Panel控件,将其Dock属性设置为Top;添加一个Splitter控件,Dock属性同样设置为Top;在窗体下部再添加一个Panel,Dock属性为top。然后,在两面板中各添加一个Data Grid,其Dock属性为Fill。窗体布局如图4。


(图4:窗体布局)

编辑:admin 总点击 [838]   评论  0 查看评论
上一篇:Visual Basic.NET中的操作符应用实例
下一篇:VB.NET实现DataList横向数据交替变色
【关闭窗口】
您可能感兴趣的文章
我要评论
          
评论标题:   可以输入250
 
验证数字: 3 + 4 =
兄弟友情提示
· 请自觉遵守国家有关法律、法规,尊重网上道德。
· 兄弟在线坚决抵制不良言行,违者文责自负。
· 如果文章有版权或其他问题等,请联系我们,我们会尽快处理。
· 文章注名来自网络的旨在传播共享信息,不做其它用途;注名原创的本站支持原创,但不代表同意其观点。
· 兄弟在线拥有管理用户与其文章和评论的一切权利,并有权在网站内转载或引用。
兄弟在线
兄弟热门文章
兄弟推荐文章
兄弟站内搜索

兄弟感兴趣的文章
兄弟最新影视