vb的datagrid控件的使用(一)

使用 DataGrid 控件

DataGrid 控件是一种类似于电子数据表的绑定控件,可以显示一系列行和列来表示 Recordset 对象的记录和字段。可以使用 DataGrid 来创建一个允许最终用户阅读和写入到绝大多数数据库的应用程序。DataGrid 控件可以在设计时快速进行配置,只需少量代码或无需代码。当在设计时设置了DataGrid 控件的 DataSource 属性后,就会用数据源的记录集来自动填充该控件,以及自动设置该控件的列标头。然后您就可以编辑该网格的列;删除、重新安排、添加列标头、或者调整任意一列的宽度。
在运行时,可以在程序中切换 DataSource 来察看不同的表,或者可以修改当前数据库的查询,以返回一个不同的记录集合。
注意 DataGrid 控件与 Visual Basic 5.0中的 DBGrid 是代码兼容的,除了一个例外:DataGrid 控件不支持 DBGrid 的“解除绑定模式”概念。DBGrid 控件包括在 Visual Basic 的 Tools 目录中。

可能的用法
查看和编辑在远程或本地数据库中的数据。
与另一个数据绑定的控件(诸如 DataList 控件)联合使用,使用 DataGrid控件来显示一个表的记录,这个表通过一个公共字段链接到由第二个数据绑定控件所显示的表。

使用 DataGrid 控件的设计时特性
可以不编写任何代码,只通过使用 DataGrid 控件的设计时特性来创建一个数据库应用程序。下面的说明概要地说明了在实现 DataGrid 控件的典型应用时的一般步骤。完整的循序渐进的指示,请参阅主题“DataGrid 方案1: 使用 DataGrid 控件创建一个简单数据库应用程序”。
要在设计时实现一个 DataGrid 控件
1. 为要访问的数据库创建一个 Microsoft 数据链接 (.MDL) 文件。请参阅“创建 Northwind OLE DB 数据链接”主题,以获得一个示例。
2. 在窗体上放置一个 ADO Data 控件,并将其 ConnectionString 属性设置为在第 1 步中所创建的OLE DB 数据源。
3. 在这个 Ado Data 控件的 RecordSource 属性中输入一条将返回一个记
录集的 SQL 语句。例如,Select * From MyTableName Where CustID = 12
4. 在窗体上放置一个 DataGrid 控件,并将其 DataSource 属性设置为这个 ADO Data 控件。
5. 右键单击该 DataGrid 控件,然后单击“检索字段”。
6. 右键单击该 DataGrid 控件,然后单击“编辑”。
7. 重新设置该网格的大小、删除或添加网格的列。
8. 右键单击该 DataGrid 控件,然后单击“属性”。
9. 使用“属性页”对话框来设置该控件的适当的属性,将该网格配置为所需的外观和行为。

在运行时更改显示的数据
在创建了一个使用设计时特性的网格后,也可以在运行时动态地更改该网格的数据源。下面介绍实现这一功能的通常方法。

更改 DataSource 的RecordSource
更改所显示的数据的最通常方法是改变该 DataSource 的查询。例如,如果DataGrid 控件使用一个ADO Data控件作为其 DataSource,则重写RecordSource和刷新该ADO Data 控件都将改变所显示的数据。
' ADO Data 控件连接的是 Northwind 数据库的' Products 表。新查询查找所有
' SupplierID = 12 的记录。
Dim strQuery As String
strQuery = "SELECT * FROM Suppliers WHERE SupplierID = 12"
Adodc1.RecordSource = strQuery
Adodc1.Refresh

更改 DataSource
在运行时,可以将 DataSource 属性重新设置为一个不同的数据源。例如,您可能具有若干个 ADO Data 控件,每个控件连接不同的数据库,或设置为不同的 RecordSource 属性。可以简单地将 DataSource 从一个 ADO Data控件重新设置为另一个 ADO Data 控件:
' 将 DataSource 重新设置为一个连接到 Pubs 数据库的、
' 使用 Authors 表的 ADO Data 控件。
Set DataGrid1.DataSource = adoPubsAuthors

重新绑定 DataSource
当将 DataGrid 控件用于一个远程数据库,诸如 SQLServer 时,可以改变表的结构。例如,可以给这个表添加一个字段。在这种情形下,可以调用Rebind 方法根据新的结构来重新创建该网格。注意,如果已经在设计时改变了这个列的布局,DataGrid 控件将会试图重新创建当前的布局,包括任何空的列。不过,通过首先调用 ClearFields 方法,可以强制该网格重新设置所有的列。

从 DataGrid 返回值
在 DataGrid 被连接到一个数据库后,可能想要监视用户单击了哪一个单元。可以使用 RowColChange 事件——而不是 Click 事件。如下所示:
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
' 显示用户所单击的单元的文字、行和列的信息。
Debug.Print DataGrid1.Text; DataGrid1.Row; DataGrid1.Col
End Sub

使用 CellText 和 CellValue 方法
当一个列使用 NumberFormat 属性设置格式后,CellText 和 CellValue 属性是很有用的。NumberFormat 属性不必更改实际的数据格式就可以更改任何包含数字的列的格式。例如,给定一个网格,其中包含一个名为 ProductID的、包含整数的列。下面的代码将使 DataGrid 以"P-0000" 的格式来显示数据。换句话说,尽管在 ProductID 字段中所包含的实际数值为 "3",但该网格所显示的值将是 "P-0003"。
Private Sub Form_Load()
DataGrid1.Columns("ProductID").NumberFormat = "P-0000"
End Sub
要返回数据库中所包含的实际值,应使用 CellValue 方法,如下所示:
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
Debug.Print _
DataGrid1.Columns("ProductID").CellValue(DataGrid1.Bookmark)
End Sub
注意 上面所用的 CellValue 和下面所用的 CellText 值,都需要将Bookmark 属性作为一个参数,功能才正确。
相反地,如果要返回该字段的格式化的值,应使用 CellText 方法:
Private Sub DataGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
Debug.Print _
DataGrid1.Columns("ProductID").CellText(DataGrid1.Bookmark)
End Sub
注意 上面的 CellText 方法等价于使用 DataGrid 控件的 Text 属性。

下一步
要阅读关于使用该控件创建简单的应用程序的一个循序渐进的过程,请参阅“使用 DataGrid 控件创建简单的数据库应用程序”,或“创建一个连接DataList 控件的 DataGrid”。
要了解关于 Split 对象以及如何对其编程的详细信息,请参阅“操作DataGrid 视图”。

时间: 2025-01-21 07:46:21

vb的datagrid控件的使用(一)的相关文章

vb的datagrid控件的使用(二)

创建 Northwind 的OLE DB 数据链接访问数据的一个重要步骤是为想要访问的每个数据库都创建一个 OLE DB数据源.下面的步骤为 Visual Basic 所提供的Nwind.mdb (Northwind) 数据库创建这样一个对象.这个数据源被用于 Visual Basic 文档所提供的一些示例过程.在一个计算机上只需要创建一次OLE DB数据源. 要创建 Northwind 的OLE DB 数据源1. 打开 Windows Explorer或 Windows NT Explorer

vb的datagrid控件的使用(五)

RecordSet事件的编程也可以对这个 Recordset 对象的事件进行编程.在该类模块中,单击"对象"框(在位于左上角),然后单击"rsNames".在"过程/事件"框(在右上角)中,下拉列表将显示这个 Recordset 对象的所有事件. 给类添加一个属性类模块也可以进行修改,来响应事件或函数调用.下面的代码演示了如何先给类添加属性.当从其它对象调用该对象时,这一属性将返回该类的RecordCount.Public Property Ge

vb的datagrid控件的使用(四)

使用 Bookmarks 和 SelBookmarks 跟踪记录Bookmarks 和 SelBookmarks 提供了标记记录的一种手段.当编写应用程序中的特定功能(诸如允许最终用户手工地选择多个不相邻的记录,进行所选记录的大批更新)时,这就很有必要.在这些情形中,需要标记哪些记录已被选择,因此可以使用 SelBookmarks 集合及其属性.有两个函数,分别是 CellText 和 CellValue 方法,需要标记才能正确执行. 标记用户的选择SelBookmarks 集合包含所有选定的记

vb的datagrid控件的使用(三)

使用列通过更改 DataSource 属性,可以动态地更改在 DataGrid 控件中显示的数据.例如,可以显示同一个数据库的不同表.如果这样做,则 DataGrid 控件将只根据默认的属性显示数据. 添加.删除或隐藏列通过使用 Columns 集合和 Column 对象的属性和方法,可以在程序中添加.删除或隐藏列. 添加和删除一列要在运行时添加一列,可以使用 Add 方法.如果首先声明一个变量,并将新对象赋给该变量,就可以用简明的代码设置各种属性.Private Sub AddColumn()

Cutting Edge:使用客户端行为扩展ASP.NET DataGrid 控件

asp.net|datagrid|客户端|控件 Cutting Edge:使用客户端行为扩展ASP.NET DataGrid 控件 (可拖动列和客户端排序) 英文原文:Extend the ASP.NET DataGrid with Client-side Behaviors作者:Dino Esposito翻译:MasterLRC源码:CuttingEdge0401.exe 如同比萨饼厨师的擀面杖,DataGrid 控件,对于一个熟练的ASP.NET开发者来说是非常基本而且有用的工具(译者:老外

怎样使用DataGrid控件

datagrid|datagrid控件 [Visual Basic, C#, JScript] 下面的示例展示如何使用 DataGrid 控件来显示数据源中的项.[Visual Basic] <%@ Page Language="VB" AutoEventWireup="True" %><%@ Import Namespace="System.Data" %> <html> <script languag

ASP.NET:DataGrid控件的分页功能

asp.net|datagrid|datagrid控件|分页 DataGrid 控件是一个基于模板样式的.多功能的.多列的数据绑定控件.在三个数据绑定控件中,DataGrid是功能最为强大的,其次时DataList控件,然后是轻量级的数据绑定控件Repeater.要自定义 DataGrid 中各列的布局,您可以将列类型设置为"模板",然后修改列的模板.DataGrid 控件也可以无需模板,只需按照默认的设置即可进行呈现,这使得该控件成了用于报告方案的理想控件.      我们可以把Da

ASP.NET:DataGrid控件的排序功能

asp.net|datagrid|datagrid控件|排序 上一节我们已经知道DataGrid排序功能是由AllowSorting属性控制的,这一小节里,我们将通过实例来验证这个功能.     在DataCon Web项目里,添加一个窗体,命名为DataGrid_Sample4.aspx,添加一个DataGrid控件,DataGrid_Sample4.aspx的主要HTML代码如下:<body MS_POSITIONING="GridLayout"><form id

ASP.NET:DataGrid控件的编辑功能

asp.net|datagrid|datagrid控件 在ASP技术作Web编程的时候,因为对数据库的操作使用的RecordSet对象,如果不使用第三方控件,想要做到在线编辑数据就很困难.而DataGrid控件就支持了在线编辑的功能,只要把EditCommandColumn属性设置适当,稍加编程就可以实现了. DataGrid控件的EditItemIndex属性表示编辑按钮的类别,ASP.NET默认的EditItemIndex=-1,即不支持编辑属性.下面我们通过实例来学习一下.     在Da