ADO Data控件使用Microsoft ActiveX数据对象(ADO)来快速建立数据绑定的控件和数据提供者之间的连接。数据绑定控件是任何具有“数据源”属性的控件。数据提供者可以是任何符合OLE DB规范的数据源。使用Visual Basic的类模块也可以很方便地创建子集的数据提供者。
尽管可以在应用程序中直接使用ActiveX数据对象,但ADO Data控件有作为一个图形控件的优势(具有“向前”和“向后”按钮),以及一个易于使用的界面,使我们可以用最少的代码创建数据库应用程序。
ADO Data控件并不属于Visual Basic的标准内部控件,所以不在原有的工具箱中,使用前需要额外添加。
一、ADO对象模型
ADO对象模型定义了一个可编程的分层对象集合,主要由3个对象成员[Connection(连接),Command(命令)和Recordset(记录集)对象]及几个集合对象(Errors,Parametera和Fields等)组成。
1.Connection对象
Connection对象代表与数据源进行的唯一会话。如果是客户端/服务器数据库系统,该对象可以等价于到服务器的实际网络连接。
2.Command对象
使用Command对象查询数据库并返回Recordset对象中的记录,以便执行大量操作或处理数据库结构。可以使用Command对象的集合、方法、属性进行操作。
3.Recordset对象
可使用Recordset对象操作来自提供者的数据。使用ADO时,通过Recordset对象可对几乎所有数据进行操作。所有Recordset对象均使用记录(行)和字段(列)进行构造。
打开Recordset时,当前记录位于第一个记录(如果有),并且BOF和EOF属性被设置为False。如果没有记录,BOF和EOF属性设置是True。
4.Recordset对象的Field对象
Recordset对象含有由Field对象组成的Fields集合。每个Field对象对应于Record⁃set中的一列。使用Field对象的Value属性可设置或返回当前记录的数据。使用Field对象的集合、方法和属性可进行如下操作:
二、ADO Data控件的常用属性
1.ConnectionString属性
包含用来建立到数据源的连接的信息。其中包括的主要参数有Provider和Data Source。Provider参数可设置或返回连接提供者的名称。Access的连接提供者的名称为:
Provider=Microsoft.Jet.OLEDB.4.0
Data Source参数指定包含预先设置连接信息的特定提供者的文件名称(如持久数据源对象)。
Data Source=E:\GYH\VB\学籍1b.mdb
2.RecordSource属性
返回或设置一个记录集的查询。可以是一个数据库表的名称,也可以是一个SQL查询,即一个有效的SQL字符串,该字符串使用了适合于数据源的语法。
3.UserName属性
返回或设置一个值,该值代表了ADO Recordset对象的一个用户。
4.Password属性
设置ADO Recordset对象创建过程中所使用的口令。
5.CommandText属性
包含要发送给提供者的命令的文本。
设置或返回包含提供者命令(如SQL语句、表格名称或存储的过程调用)的字符串值。默认值为""(零长度字符串)。
6.CommandType属性
指示Command对象的类型。在ADO中定义了4种不同的命令类型:
◆文本类型AdCmdText:将CommandText作为命令或存储过程调用的文本定义进行计算。
◆表格名称类型AdCmdTable:将CommandText作为其列全部由内部生成的SQL查询返回的表格的名称进行计算。
◆存储过程类型AdCmdStoredProc:将CommandText作为存储过程名进行计算。
◆未知类型AdCmdUnknown:默认值。CommandText属性中的命令类型未知。
7.BOFAction属性
返回或设置一个值指示在BOF属性为True时,Data控件进行什么操作。
8.EOFAction属性
返回或设置一个值指示在EOF属性为True时,Data控件进行什么操作。
9.CursorType属性
指示在Recordset对象中使用的游标类型。
在ADO中定义了3种不同的游标类型:
◆动态游标adOpenDynamic——用于查看其他用户所做的添加、更改和删除,并用于不依赖书签的Recordset中各种类型的移动。如果提供者支持,可使用书签。
◆键集游标adOpenKeyset——其行为类似动态游标,不同的只是禁止查看其他用户添加的记录,并禁止访问其他用户删除的记录,其他用户所做的数据更改将依然可见。它始终支持书签,因此允许Recordset中各种类型的移动。(www.daowen.com)
◆静态游标adOpenStatic——提供记录集合的静态副本以查找数据或生成报告。它始终支持书签,因此允许Recordset中各种类型的移动。其他用户所做的添加、更改或删除将不可见。这是打开客户端(ADOR)Recordset对象时唯一允许使用的游标类型。
10.LockType属性
指示编辑过程中对记录使用的锁定类型。
设置或返回以下4种类型中某个LockTypeEnum的值。
◆AdLockReadOnly:默认值,只读,无法更改数据。
◆AdLockPessimistic:保守式记录锁定(逐条)。提供者执行必要的操作确保成功编辑记录,通常采用编辑时立即锁定数据源的记录的方式。
◆AdLockOptimistic:开放式记录锁定(逐条)。提供者使用开放式锁定,只在调用Update方法时锁定记录。
◆AdLockBatchOptimistic:开放式批更新。用于与立即更新模式相反的批更新模式。
三、ADO Data控件的事件
ADO Data控件提供了若干个可以编程的事件。
四、ADO Data控件的常用方法
1.Refresh方法
刷新集合中的对象以便反映来自并特定于提供者的对象。更改ADO Data控件的数据源属性后(如DatabaseName,ReadOnly,Exclusive或Connect属性值发生改变时),重新创建其RecordSet对象。
2.记录集RecordSet对象的常用方法
◆MoveFirst方法:将记录指针移到第一条记录。
例如,执行语句“Adodc1.Recordset.MoveFirst”后,记录指针将移到第一条记录。
◆MoveLast方法:将记录指针移到最后一条记录
◆MoveNext方法:将记录指针向后移动一条记录
五、ADO Data控件应用
利用ADO Data控件创建一个简单的前端数据库应用程序几乎可以不编写任何代码就可以完成所有操作,如前面介绍过的,是一个利用DataGrid表格控件作为数据绑定控件来呈现数据访问控件ADOd1所连接的数据库中信息的,而ADOd1连接的数据库名是E:\GYH\VB\学籍1b.mdb,记录源为“学生”表。具体设计步骤如下:
第一步:窗体上放置一个ADO Data控件。
如果该控件不在“工具箱”中,可以按CTRL+T键,显示“部件”对话框。在这个“部件”对话框中,单击“Microsoft ADO Data Control 6.0(OLEDB)”。
第二步:在“工具箱”中,双击选定“ADO数据控件”,然后按F4键显示“属性”窗口,创建一个“ConnectionString”连接字符串。
第三步:在“属性”窗口中,将“记录源”RecordSource属性设置为一个表名或者一个SQL语句。
当CommandType属性设置为“2-adcmdtable”时,可以将RecordSource属性设置为一个表文件名,如“学生”表;当CommandType属性设置为“1-adcmdtext”时,可以将Record⁃Source属性设置为一个SQL语句。例如:SELECT*FROM学生WHERE奖学金>=50
第四步:在窗体上再放置一个数据绑定控件DateGrid,用来显示数据库信息。
在其“属性”窗口中,将DateGrid的“数据源”DataSource属性设为ADO Data控件的名称(ADODC1),这样就将这个DateGrid和ADO Data控件绑定在一起。
第五步:按F5键运行该应用程序。
可以在ADO Data控件使用4个箭头按钮,从而可以到达数据的开始、记录的末尾、或在数据内从记录移动到另一个记录。
六、使用ADO对象访问数据库
若要在VB中使用ADO对象,必须在工程中添加对ADO对象的引用。
要添加对ADO对象的引用,可单击“工程”菜单上“引用”命令,打开“引用”对话框,在“可用的引用”列表中,选择想引用的ADO对象库。
在应用程序中添加了对ADO对象库的引用后,须先声明一个Connection对象变量,再生成一个Connection对象的实例。例如:
或者两步合二为一:
Dim ans1 ASNew ADODB.Connection
使用ADO编程一般要按照以下几个步骤:
(1)创建连接。
(2)创建命令。
(3)运行命令返回记录集。
(4)操作记录集。
【综合举例】根据上述编程步骤,设计一个简单程序,对14.2节所创建的数据库(F:\数据库\dagl.mdb)进行查询,输出计算机成绩在75分以上的同学的姓名、专业。
程序代码如下:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。