DataGrid控件的使用

字號(hào):

使用 DataGrid 控件
     DataGrid 控件是一種類似于電子數(shù)據(jù)表的綁定控件,可以顯示一系列行和列來表示 Recordset 對(duì)象的記錄和字段??梢允褂?DataGrid 來創(chuàng)建一個(gè)允許最終用戶閱讀和寫入到絕大多數(shù)數(shù)據(jù)庫的應(yīng)用程序。DataGrid 控件可以在設(shè)計(jì)時(shí)快速進(jìn)行配置,只需少量代碼或無需代碼。當(dāng)在設(shè)計(jì)時(shí)設(shè)置了DataGrid 控件的 DataSource 屬性后,就會(huì)用數(shù)據(jù)源的記錄集來自動(dòng)填充該控件,以及自動(dòng)設(shè)置該控件的列標(biāo)頭。然后您就可以編輯該網(wǎng)格的列;刪除、重新安排、添加列標(biāo)頭、或者調(diào)整任意一列的寬度。
     在運(yùn)行時(shí),可以在程序中切換 DataSource 來察看不同的表,或者可以修改當(dāng)前數(shù)據(jù)庫的查詢,以返回一個(gè)不同的記錄集合。
     注意 DataGrid 控件與 Visual Basic 5.0中的 DBGrid 是代碼兼容的,除了一個(gè)例外:DataGrid 控件不支持 DBGrid 的“解除綁定模式”概念。DBGrid 控件包括在 Visual Basic 的 Tools 目錄中。
     可能的用法
     查看和編輯在遠(yuǎn)程或本地?cái)?shù)據(jù)庫中的數(shù)據(jù)。
     與另一個(gè)數(shù)據(jù)綁定的控件(諸如 DataList 控件)聯(lián)合使用,使用 DataGrid控件來顯示一個(gè)表的記錄,這個(gè)表通過一個(gè)公共字段鏈接到由第二個(gè)數(shù)據(jù)綁定控件所顯示的表。
     使用 DataGrid 控件的設(shè)計(jì)時(shí)特性
     可以不編寫任何代碼,只通過使用 DataGrid 控件的設(shè)計(jì)時(shí)特性來創(chuàng)建一個(gè)數(shù)據(jù)庫應(yīng)用程序。下面的說明概要地說明了在實(shí)現(xiàn) DataGrid 控件的典型應(yīng)用時(shí)的一般步驟。完整的循序漸進(jìn)的指示,請(qǐng)參閱主題“DataGrid 方案1: 使用 DataGrid 控件創(chuàng)建一個(gè)簡(jiǎn)單數(shù)據(jù)庫應(yīng)用程序”。
    要在設(shè)計(jì)時(shí)實(shí)現(xiàn)一個(gè) DataGrid 控件
     1. 為要訪問的數(shù)據(jù)庫創(chuàng)建一個(gè) Microsoft 數(shù)據(jù)鏈接 (.MDL) 文件。請(qǐng)參閱“創(chuàng)建 Northwind OLE DB 數(shù)據(jù)鏈接”主題,以獲得一個(gè)示例。
     2. 在窗體上放置一個(gè) ADO Data 控件,并將其 ConnectionString 屬性設(shè)置為在第 1 步中所創(chuàng)建的OLE DB 數(shù)據(jù)源。
     3. 在這個(gè) Ado Data 控件的 RecordSource 屬性中輸入一條將返回一個(gè)記
    錄集的 SQL 語句。例如,Select * From MyTableName Where CustID = 12
     4. 在窗體上放置一個(gè) DataGrid 控件,并將其 DataSource 屬性設(shè)置為這個(gè) ADO Data 控件。
     5. 右鍵單擊該 DataGrid 控件,然后單擊“檢索字段”。
     6. 右鍵單擊該 DataGrid 控件,然后單擊“編輯”。
     7. 重新設(shè)置該網(wǎng)格的大小、刪除或添加網(wǎng)格的列。
     8. 右鍵單擊該 DataGrid 控件,然后單擊“屬性”。
     9. 使用“屬性頁”對(duì)話框來設(shè)置該控件的適當(dāng)?shù)膶傩裕瑢⒃摼W(wǎng)格配置為所需的外觀和行為。
     在運(yùn)行時(shí)更改顯示的數(shù)據(jù)
     在創(chuàng)建了一個(gè)使用設(shè)計(jì)時(shí)特性的網(wǎng)格后,也可以在運(yùn)行時(shí)動(dòng)態(tài)地更改該網(wǎng)格的數(shù)據(jù)源。下面介紹實(shí)現(xiàn)這一功能的通常方法。
     更改 DataSource 的RecordSource
     更改所顯示的數(shù)據(jù)的最通常方法是改變?cè)?DataSource 的查詢。例如,如果DataGrid 控件使用一個(gè)ADO Data控件作為其 DataSource,則重寫RecordSource和刷新該ADO Data 控件都將改變所顯示的數(shù)據(jù)。
     ’ ADO Data 控件連接的是 Northwind 數(shù)據(jù)庫的’ Products 表。新查詢查找所有
     ’ SupplierID = 12 的記錄。
     Dim strQuery As String
     strQuery = "SELECT * FROM Suppliers WHERE SupplierID = 12"
     Adodc1.RecordSource = strQuery
     Adodc1.Refresh
     更改 DataSource
     在運(yùn)行時(shí),可以將 DataSource 屬性重新設(shè)置為一個(gè)不同的數(shù)據(jù)源。例如,您可能具有若干個(gè) ADO Data 控件,每個(gè)控件連接不同的數(shù)據(jù)庫,或設(shè)置為不同的 RecordSource 屬性??梢院?jiǎn)單地將 DataSource 從一個(gè) ADO Data控件重新設(shè)置為另一個(gè) ADO Data 控件:
     ’ 將 DataSource 重新設(shè)置為一個(gè)連接到 Pubs 數(shù)據(jù)庫的、
     ’ 使用 Authors 表的 ADO Data 控件。
     Set DataGrid1.DataSource = adoPubsAuthors
     重新綁定 DataSource
     當(dāng)將 DataGrid 控件用于一個(gè)遠(yuǎn)程數(shù)據(jù)庫,諸如 SQLServer 時(shí),可以改變表的結(jié)構(gòu)。例如,可以給這個(gè)表添加一個(gè)字段。在這種情形下,可以調(diào)用Rebind 方法根據(jù)新的結(jié)構(gòu)來重新創(chuàng)建該網(wǎng)格。注意,如果已經(jīng)在設(shè)計(jì)時(shí)改變了這個(gè)列的布局,DataGrid 控件將會(huì)試圖重新創(chuàng)建當(dāng)前的布局,包括任何空的列。不過,通過首先調(diào)用 ClearFields 方法,可以強(qiáng)制該網(wǎng)格重新設(shè)置所有的列。