使用ADOData控件
ADOData控件使用MicrosoftActiveX数据对象(ADO)来快速建立数据绑定的控件和数据提供者之间的连接。数据绑定控件是任何具有“数据源”属性的控件。数据提供者可以是任何符合OLEDB规范的数据源。使用VisualBasic的类模块也可以很方便地创建子集的数据提供者。
尽管可以在应用程序中直接使用ActiveX数据对象,但ADOData控件有作为一个图形控件的优势(具有“向前”和“向后”按钮),以及一个易于使用的界面,使您可以用最少的代码创建数据库应用程序。
在VisualBasic的“工具箱”中,不少控件都可以作为数据绑定的控件,包括复选框、组合框、图像、标签、列表框、图片框以及文本框控件等。此外,VisualBasic还包括了若干种数据绑定的ActiveX控件,诸如DataGrid、DataCombo、Chart以及DataList控件等。用户也可以创建自己的数据绑定的ActiveX控件,或从其他开发商购买控件。
VisualBasic以前的版本提供了内在的Data控件和RemoteData控件(RDC)来进行数据访问。这两种控件仍包括在VisualBasic中,以提供向后兼容。不过,因为ADO的适应性更广,因此建议用户使用ADOData控件来创建新的数据库应用程序。
详细信息关于数据绑定的控件的完整列表位于“绑定到ADOData控件的控件”中。要了解如何使用这些内在的Data控件或RemoteData控件,请参阅“使用Data控件”或“使用RemoteData控件”。关于创建数据提供者的详细信息,请参阅“创建数据识别类”。
可能的用法
连接一个本地数据库或远程数据库。
打开一个指定的数据库表,或定义一个基于结构化查询语言(SQL)的查询、或存储过程、或该数据库中的表的视图的记录集合。
将数据字段的数值传递给数据绑定的控件,可以在这些控件中显示或更改这些数值。
添加新的记录,或根据对显示在绑定的控件中的数据的任何更改来更新一个数据库。
要创建一个客户或前端数据库应用程序,应在窗体中添加ADOData控件,以及其它所需要的任何VisualBasic控件。可以根据您的需要在窗体中放置多个ADOData控件。不过,请注意,这种控件是一种相当“昂贵”的创建连接的方法,应在第一个控件至少有两个连接,且以后的每个控件至少多一个连接时使用。
用最少的代码创建一个前端数据库应用程序
通过在设计时设置一些属性,可以用最少的代码来创建一个数据库应用程序。如果正在使用OLEDB数据源,则相应的Microsoft数据链接名称(DataLinkName)(.MDL)必须是在您的机器上创建的。请参阅“创建Northwind的OLEDBDataLink”,以获得一个循序渐进的示例。
要创建一个简单的前端数据库应用程序:
1.在窗体上放置一个ADOData控件(该图标的工具提示为"ADODC")如果该控件不在“工具箱”中,请按CTRL T键,显示“部件”对话框。在这个“部件”对话框中,单击“MicrosoftADODataControl”。
2.在“工具箱”中,单击选定“ADOData控件”。然后按F4键显示“属性”窗口。
3.在“属性”窗口中,单击“ConnectionString”显示“ConnectionString”对话框。
4.如果您已经创建了一个Microsoft数据链接文件(DataLinkfile)(.MDL),请选择“使用OLEDB文件”并单击“浏览”,以找到计算机上的文件。如果使用DSN,则单击“使用ODBC数据源名”,并从框中选择一个DSN,或单击“新建”创建一个。如果想创建一个连接字符串,请选择“使用ConnectionString”,单击“生成”,然后使用“数据链接属性”对话框创建一个连接字符串。在创建连接字符串后,单击“确定”。ConnectionString属性将使用一个类似于下面这一行的字符串来填充:
driver={SQLServer};server=bigsmile;uid=sa;pwd=pwd;database=pubs
5.在“属性”窗口中,将“记录源”属性设置为一个SQL语句。例如:SELECT*FROMTitlesWHEREAuthorID=72在访问一个表时,应始终包括一个WHERE子句。如果这样做失败,则会锁定整个表,这样对其他用户将是一个严重的障碍。
6.在窗体上再放置一个“文本框”控件,用来显示数据库信息。
7.在其“属性”窗口中,将Text1的“数据源”属性设为ADOData控件的名称(ADODC1)。这样就将这个文本框和ADOData控件绑定在一起。
8.在其“属性”窗口中,单击“数据字段”将下拉得到一个可用的字段列表。单击所要显示的字段的名称。
9.对希望访问的其它每个字段重复第6、7、8步。
10.按F5键运行该应用程序。用户可以在ADOData控件中使用四个箭头按钮,从而允许用户到达数据的开始、记录的末尾或在数据内从一个记录移动到另一个记录。
在程序中设置ConnectionString、Source、DataSource以及DataField下面的代码演示了如何在程序中设置这四个属性。注意设置DataSource属性要使用Set语句。
PRivateSubForm_Load()
WithADODC1
.ConnectionString="driver={SQLServer};"&_
"server=bigsmile;uid=sa;pwd=pwd;database=pubs"
.RecordSource="Select*FromTitlesWhereAuthorID=7"
EndWith
SetText1.DataSource=ADODC1
Text1.DataField="Title"
EndSub
ADOData控件的事件
ADOData控件提供了若干个可以编程的事件。下表说明了这些事件及其何时产生,不过这个表不是一个关于这些事件何时发生的所有条件的完整列表。更完整的信息,请参阅各个事件的参考主题。
详细信息如果试图循序渐进地使用ADOData控件,请参阅“使用DataGrid和ADO数据控件创建一个简单的数据库应用程序”,“创建一个简单的DataCombo应用程序”以及“创建一个连接DataList控件的DataGrid”。
设置ADOData控件的与数据库相关的属性
当创建连接时,您可以使用下列三种源之一:一个连接字符串,一个OLEDB文件(.MDL),或一个ODBC数据源名称(DSN)。当您使用DSN时,则无须更改控件的任何其它属性。
不过,如果对数据库技术比较了解,可以更改在ADOData控件中出现的其它的一些属性。下面的列表说明了该控件的与数据库相关的一些属性。这个列表同时也建议了设置这些属性的逻辑顺序。
注意数据库技术是比较复杂的,下列的建议并不意味着一定要视为规则。
1.ConnectionString—ConnectionString属性是一个字符串,可以包含进行一个连接所需的所有设置值。在该字符串中所传递的参数是与驱动程序相关的。例如,ODBC驱动程序允许该字符串包含驱动程序、提供者、缺省的数据库、服务器、用户名称以及密码等。
2.UserName—用户的名称,当数据库受密码保护时,需要指定该属性。和Provider属性类似,这个属性可以在ConnectionString中指定。如果同时提供了一个ConnectionString属性以及一个UserName属性,则ConnnectionString中的值将覆盖UserName属性的值。
3.PassWord—在访问一个受保护的数据库时也是必需的。和Provider属性、UserName属性类似,如果在ConnectionString属性中指定了密码,则将覆盖在这个属性中指定的值。
4.RecordSource—这个属性通常包含一条语句,用于决定从数据库检索什么信息。
5.CommandType—CommandType属性告诉数据提供者Source属性是一条SQL语句、一个表的名称、一个存储过程还是一个未知的类型。
6.CursorLocation—这个属性指定光标的位置,是位于客户还是位于服务器
上。这一决策将影响您对下面几个属性的设置。
7.CursorType—CursorType属性决定记录集是静态类型、动态类型、还是键集光标类型。
8.LockType—LockType属性决定当其他人试图更改您正在编辑的数据时,如何锁定该数据。如何设置这个LockType属性是一个复杂的决策,取决于多个因素。
9.Mode—Mode属性决定想用记录集进行什么操作。例如,如果只是想要创建一个报告,可以将该属性设为只读来获得性能的改善。
10.MaxRecords—这个属性决定光标的大小。如何决定这个属性的值取决于所检索的记录的大小,以及计算机的可用资源(内存)的多少。一个大的记录(包括很多列以及长字符串)比小记录要花费更多的资源。因此,MaxRecords属性就不能太大。
11.ConnectionTimeout—设置等待建立一个连接的时间,以秒为单位。如果连接超时,则返回一个错误。
12.CacheSize—CacheSize属性指定从光标中可以检索多少条记录。如果将CursorLocation设为客户端,则这个属性只能设为一个较小的数目(可能为1),不会有任何不利的影响。如果光标的位置位于服务器端,则可以对这个数进行调整,将其设为你希望一次可以查看的行数。例如,如果使用DataGrid控件来查看30行,则可以将CacheSize设为60,这样不必检索更多的数据就可以进行滚动。
13.BOFAction、EOFAction—这两个属性决定当该控件位于光标的开始和末尾时的行为。提供的选择包括停留在开始或末尾、移动到第一个或最后一个记录、或添加一个新记录(只能在末尾)。
绑定到ADOData控件的控件
任何具有DataSource属性的控件都可以绑定到一个ADOData控件。下面的内在控件都可以绑定到ADOData控件:
复选框(CheckBox)
组合框(ComboBox)
图像(Image)
标签(Label)
列表框(ListBox)
图片框(PictureBox)
文本框(TextBox)
VisualBasic的所有版本中也提供下述数据绑定的ActiveX控件:
DataList
DataCombo
DataGrid
MicrosoftHierarchicalFlexGrid
RichTextBox
MicrosoftChart
DateTimePicker
ImageCombo
MonthView
最后,用户可以使用DataBinding对象创建自己的数据绑定的ActiveX控件。
详细信息关于自己创建数据绑定控件的详细内容,请参阅“创建数据绑定用户控件”。
新闻热点
疑难解答