详细讲解VB.NET Data Grid

开发 后端
这里介绍VB.NET Data Grid实现主/从数据表模式一般有两种方式,一是利用一个VB.NET Data Grid控件装入两个相关的数据表,二是采用两个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中显示多张关联表。

  1. Imports System.Data.SqlClient  
  2. ’引用SqlClient命名空间  
  3. Public Class Form1  
  4. Const Connection String As String = "integrated security=sspi;
  5. initial catalog=Pubs; data source=(local)" 
  6. ’定义连接字符串  
  7. Private Sub Button1_Click(By Val sender As Object, 
    By Val e As System.EventArgs) Handles Button1.Click  
  8. Dim cn As New SqlConnection (Connection String)  
  9. Cn. Open()  
  10. ’建立同数据库的连接  
  11. Dim ds As New Dataset("Book Sales")  
  12. ’创建Dataset对象  
  13. Dim Titles Table As New Data Table("Titles")  
  14. ds.Tables.Add(Titles Table)  
  15. ’创建Data Table对象(Titles表),加入Dataset  
  16. Dim GetTitlesString As String = "Select * From Titles" 
  17. Dim da As New SqlDataAdapter(GetTitlesString, cn)  
  18. da.Fill(Titles Table)  
  19. ’填充Data Table  
  20. da.Dispose()  
  21. Dim Sales Table As New Data Table("Sales")  
  22. ds.Tables.Add(Sales Table)  
  23. Dim GetSalesString As String = "Select * From Sales" 
  24. da = New SqlDataAdapter(GetSalesString, cn)  
  25. da.Fill(Sales Table)  
  26. ’创建并填充Sales表  
  27. da.Dispose()  
  28. cn.Close()  
  29. Dim relation As New Data Relation("Title Sales", TitlesTable.
    Columns("title_id"),SalesTable.Columns("title_id"))  
  30. ds.Relations.Add(relation)  
  31. 根据title_id列建立两个表的关联  
  32. DataGrid1.DataSource = ds 
  33. 将DataGrid1绑定到Dataset对象(即ds)  
  34. End Sub  
  35. End Class 

需要注意的是:在单表模式下,用SqlDataAdapter对象填充Dataset时,若发现Dataset中没有表,就自动创建一个新的 Data Table并填充;而用主从模式时,应显示创建每个Data Table对象并填充,再利用Data Relation对象建立多个Data Table之间的关联,***将VB.NET Data Grid绑定到Dataset上。

运行工程,会看到一个有加号按钮的视图。单击加号,窗体中出现装入的所有表名。如果查看Titles表,就会发现在每行的旁边有一个小加号按钮,点击加号,就可以查看其销售情况。

在窗体的右上部,向左的小箭头按钮用于回退。每查看一次销售情况后,都必须用回退按钮回到主表,显然,这种主/从表模式的可操作性很差,也不太符合我们的操作习惯。也许,后一种方式是比较好的解决方案。

【编辑推荐】

  1. 浅谈VB.NET线程构造器
  2. 简单分析VB.NET使用线程
  3. VB.NET List(T)编写框架方法
  4. 简单介绍VB.NET线程同步
  5. VB.NET声明API详细描述
责任编辑:佚名 来源: ITPUB
相关推荐

2009-10-12 16:56:36

VB.NET常量VB.NET枚举

2009-10-12 13:40:47

VB.NET Data

2010-01-11 16:04:10

VB.NET使用wit

2009-10-20 10:16:24

VB.NET COMB

2009-10-28 09:55:29

VB.NET MyCl

2009-10-23 13:10:14

VB.NET List

2009-10-15 11:42:05

VB.Net赋值语句

2009-10-16 13:19:04

VB.NET Data

2009-10-13 17:03:55

VB.NET面向对象

2009-11-02 15:45:03

VB.NET IEnu

2010-01-07 15:18:10

VB.NET常量

2009-10-12 15:02:51

VB.NET动态控件

2010-01-21 16:45:00

VB.NET继承规则

2010-01-18 18:20:49

VB.NET使用API

2009-10-14 17:21:47

VB.NET定制Win

2009-10-13 14:42:30

VB.NET静态成员

2010-01-14 15:44:17

VB.NET数据绑定

2009-10-28 13:24:25

VB.NET文件

2009-11-10 16:20:25

VB.NET全局热键

2009-10-29 11:26:28

VB.NET调用Web
点赞
收藏

51CTO技术栈公众号