程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB6 >> vb的datagrid控件的使用(一)

vb的datagrid控件的使用(一)

編輯:VB6

使用 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 視圖”。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved