创建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控件。
->