創建Northwind的OLEDB數據鏈接
訪問數據的一個重要步驟是為想要訪問的每個數據庫都創建一個OLEDB數據源。下面的步驟為VisualBasic所提供的Nwind.mdb(Northwind)數據庫創建這樣一個對象。這個數據源被用於VisualBasic文檔所提供的一些示例過程。在一個計算機上只需要創建一次OLEDB數據源。
要創建Northwind的OLEDB數據源
1.打開WindowsExplorer或WindowsNTExplorer。
2.打開您想要創建OLEDB數據源的目錄。在該示例中,打開ProgramFiles、MicrosoftVisualStudio和VB98。
3.右鍵單擊Explorer的右邊窗格,然後單擊上下文菜單上的“新建”。從文件類型列表中單擊“Microsoft數據鏈接”。
4.重命名新文件Northwind.MDL。
5.右鍵單擊文件並單擊上下文菜單上的“屬性”,以顯示“Northwind.MDLProperties”對話框。
6.單擊“連接”選項卡。
7.單擊“提供方”框並選擇“MicrosoftJet3.51OLEDBProvider”。
8.在DataSource框中輸入nwind.mdb文件的路徑。
9.單擊“測試連接”,檢測連接。
10.如果連接通過,單擊“確定”。
注意也可以通過在“控制面板”中單擊“數據鏈接”圖標創建一個OLEDB數據源。在“管理數據鏈接文件”對話框中,單擊“新建”創建一個新的數據源。
使用DataGrid和ADOData控件創建一個簡單的數據庫應用程序
只使用一個DataGrid和一個ADOData控件,可以創建一個允許最終用戶閱讀和寫入記錄集的數據庫應用程序。
要使用ADO數據控件來創建一個簡單的數據庫應用程序
1.為Northwind數據庫創建一個OLEDB數據源。如果還沒有創建數據源,請按照“創建Northwind的OLEDBDataLink”中的步驟操作。
2.在VisualBasic中創建一個新的標准的EXE工程。如果DataGrid控件不在“工具箱”中,則用右鍵單擊“工具箱”,然後使用“部件”對話框來添加控件。同時也載入ADO控件。
3.在空窗體上各放置控件的一個實例。
4.將ADO控件的ConnectionString屬性設置為Northwind的數據源。單擊並選定該ADOData控件,並按F4鍵出現“屬性”窗口。單擊“ConnectionString”,然後單擊OLEDBFile。單擊Northwind的數據源。
5.設置ADO控件的RecordSource屬性。在“屬性”窗口中,單擊“記錄源”並輸入一條SQL語句來填充DataGrid
控件。在本例中,輸入“Select*FromProducts”。
6.將DataGrid控件的DataSource屬性設置為這個ADOData控件。單擊並選定該DataGrid控件。在其“屬性”窗口中,單擊“數據源”將出現一個包含所有數據控件的下拉列表——在本例中只有ADOData控件。單擊這個控件。
7.按F5鍵運行這個工程。
創建一個連接DataList控件的DataGridData
Grid的通常用法是顯示數據庫的一個表所提供的“詳細內容”。例如,Northwind(Nwind.mdb)數據庫包括兩個表,一個名為"Suppliers",另一個名為"Products"。在本例中,我們使用DataList控件來顯示"Suppliers"表中的供應商的公司名稱。當用戶單擊任意一個公司名稱時,這個DataList控件將提供該公司的SupplierID。使用這個標識符,就可以構造一個查詢,在"Products"表中檢索具有相匹配的SupplierID的所有記錄。換句話說,當用戶單擊一個公司時(在DataList控件中),該公司生產的所有產品將出現在DataGrid控件中。
要使用一個指定供應商的產品填充一個DataGrid控件
1.確認在機器上已為Northwind數據庫建立了一個OLEDB數據源;如果還沒有創建這樣的一個數據源,請按照“創建Northwind的OLEDBData連接”的步驟操作。
2.在VisualBasic中創建一個新的標准的EXE工程。
如果DataGrid、DataList和ADOData控件不在“工具箱”中,則右鍵單擊“工具箱”,然後單擊“部件”。在“部件”對話框中雙擊“MicrosoftDataGridControl”、“MicrosoftDataListControls”以及“MicrosoftADOControl”。
3.在一個空窗體中各放置一個DataGrid和DataList控件的實例。將DataList控件放置在該窗體的左上角,然後將DataGrid控件放在它的下面的某處。
4.在窗體放置兩個ADOData控件實例。選擇第一個ADOData控件,並按F4鍵來顯示其“屬性頁”。將該控件的Name屬性設置為adoSuppliers。選擇第二個ADOData控件並將其Name屬性設置為adoProducts。將第一個控件直接放在DataList控件的下面,把第二個控件直接放在DataGrid控件的下面。
5.將這兩個ADOData控件的ConnectionString屬性設置為Northwind的OLEDB數據源。選擇名為adoSuppliers的控件,然後將其ConnectionString屬性設置為Northwind的OLEDBdatasource(Northwind.mdl)。選擇名為adoProducts的控件,並重復該操作。
6.設置這兩個ADOData控件的RecordSource屬性。選擇adoSuppliers並在其“屬性頁”上單擊“RecordSoure”。輸入Select*FromSuppliers。這個查詢將指示該ADOData控件返回Suppliers表中的所有記錄。選擇adoProducts,單擊“RecordSoure”,並輸入Select*FromProducts。這個查詢將返回在Products表中的所有記錄。
7.將DataList控件的RowSource屬性設置為adoSuppliers。
RowSource屬性決定由哪一個數據源為ListField屬性供應數據。
8.將DataList控件的ListField屬性設置為CompanyName。
ListField屬性被設置成名為Suppliers的表中的字段名稱。在運行時,DataList控件顯示在這個屬性中所指定的字段的值。在本例中,該屬性將顯示在Suppliers表中找到的一個公司名稱。
9.將DataList控件的BoundColumn屬性設置為SupplierID。
BoundColumn屬性被設為Suppliers表中的第二個字段。在本例中,這個屬性就被設為SupplierID字段。當單擊DataList控件時,BoundText屬性返回與在DataList控件中所顯示的公司相關聯的SupplierID字段的值。這個值將用於對Products表的查詢,該查詢為DataGrid控件提供數據。
10.將DataGrid控件的DataSource屬性設置為adoProducts。
DataSource屬性為該控件指定數據源。在本例中,該屬性被設置為名為adoProducts的ADOData控件,這將返回Products表中的所有記錄。
11.在窗體的代碼模塊中,添加下述內容:
PrivateSubDatalist1_Click()
'聲明一個用來包含新查詢的字符串變量。這個新的
'查詢使用DataList控件的BoundText屬性
'來提供一個SupplierID值。新查詢查找所有
'具有相同的SupplierID的產品。這個查詢被
'指定給名為adoProducts的ADOData控件
'的RecordSource屬性。在刷新控件後,DataGrid
'將使用包含由同一個公司供應的所有產品的新
'記錄集來更新。
DimstrQueryAsString
strQuery="Select*FROMProductsWHERESupplierID="&_
Datalist1.BoundText
WithadoProducts
.RecordSource=strQuery
.Refresh
EndWith
WithDataGrid1
.ClearFields
.ReBind
EndWith
EndSub
12.運行該工程。
單擊DataList控件中的任意公司名稱,將自動用該公司所供應的產品更新DataGrid控件。