ADO数据控件是VB提供的一个图形控件,使用ADO数据控件可快速建立数据绑定控件和数据库之间的连接,可以用最少的代码创建数据库应用程序。与Data控件相比,ADO数据控件的功能更加强大,而且能够连接任何符合OLEDB(Object Linking and Embedding Database,一种数据访问的技术标准)规范的数据源,数据源可以是本地或远程计算机的各种数据库,也可以是电子邮件数据、Web上的文本或图形。
由于ADO数据控件使用灵活,且适应性更广,因此在设计应用程序时,应尽可能使用ADO数据控件。
1.添加ADO数据控件
ADO数据控件不是VB的标准控件,使用之前必须将其添加到工具箱中。添加方法是:通过选择“工程”菜单→“部件”命令,在打开的“部件”对话框中勾选“Microsoft ADO Data Contrl 6.0(OLEDB)”进行添加。工具箱的ADO数据控件放置在窗体上的外观如图9-9所示,其默认名称和标题为Adodc1。ADO数据控件有一组属性、方法和响应的事件,建立与数据源的连接或通过代码实现数据库的连接,并且可以通过数据绑定控件,更加灵活地显示和操作数据库数据。
图9-9 ADO数据控件
2.ADO数据控件的属性、方法和事件
(1)ADO数据控件的基本属性。
ADO数据控件需要经过“连接“数据库和“绑定”两步操作。使用ADO数据控件建立与数据库的连接,从数据库中选择数据构成记录集,是通过设置控件的三个基本属性来完成的。
①ConnectionString
ConnectionString字符串类型,用于设置ADO数据控件建立到数据源的连接的相关信息。其中,包括的主要参数有Provider和DataSource。Provider参数可设置或返回连接提供者的名称。
DataSource参数指定包含预先设置连接数据源信息的特定提供者的文件名称。
例如,Access的连接字符为
Provider=Microsoft.Jet.OLED B.4.0;DataSource=D:\VBLX\xsgl.mdb
②RecordSource
返回或设置一个记录集的查询。它可以是一个数据库表的名称,也可以是一个SQL查询,即一个有效的SQL命令字符串。
③CommandType
指示Command对象的类型。在ADO中定义了4种不同的命令类型。
a.未知类型AdCmdUnknown:默认值,CommandText属性中的命令类型未知。
b.文本类型AdCmdText:将CommandText作为命令或存储过程调用的文本化定义进行计算。
c.表格名称类型AdCmdTable:将CommandText作为其列全部由内部生成的SQL查询返回的表格的名称进行计算。
d.存储过程类型AdCmdStoredProc:将CommandText作为存储过程名进行计算。
ADO数据控件的大部分属性可以通过“属性页”对话框设置。在窗体中,选定ADO数据控件后右击,选择“ADO属性”,打开“属性页“对话框,如9-10所示。从对话框中可以看到,有三种方法连接数据源。
a.如果已经创建了一个Microsoft数据链接文件(Data Link file),则选择“使用Data Link文件”,并单击“浏览”按钮,找到计算机上的文件。
b.如果使用DSN(DataSource Name,数据来源名称),则单击“使用ODBC数据源名称”,并从下拉列表框中选择一个DSN,或单击“新建”按钮创建一个。
c.如果想创建一个连接字符串,则选择“使用连接字符串”,单击“生成”按钮,然后使用“数据链接属性”对话框创建一个连接字符串。这里,使用第三种方式选择“使用连接字符串”,单击“属性页”中的“生成”按钮,打开“数据链接属性”对话框,如图9-10所示。
在“数据链接属性”(图9-11)对话框中,如果访问的数据库是Access数据库,则可以选择“Microsoft Jet4.0 OLE DB Provider”,单击“下一步”按钮,则进入“连接”选项卡,输入要连接的数据库路径和文件名,如D:\VBLX\xsgl.mdb,或者点击按钮,然后选择数据库路径和文件名,如图9-12所示。根据需要还可以输入数据库的用户名和密码,最后单击“测试连接”按钮,测试连接是否成功。当连接成功后,单击“确定”按钮时,在“使用连接字符串”框中显示类似以下的一串字符:
Provider=Microsoft.Jet.OLED B.4.0;DataSource=D:\VBLX\xsgl.mdb;Persist Security Info=False
单击“确定”按钮,完成数据源的连接。
图9-11 “数据链接属性”中的“提供程序”选项卡(www.xing528.com)
图9-12 “数据链接属性”中的“连接”选项卡
连接好数据源后,还应设置记录源,即设置Recordsourc属性。在“属性页”对话框(见图9-13)中选择“记录源”选项卡,如图9-13所示。
图9-13 “属性页”中的“通用”选项卡
从命令类型下拉列表框中选择记录源的类型,如果选择命令类型为“1-adCmdText”,则在“命令文本”框中输入SQL语句来确定记录源,比如,可以在“命令文本”框中输入“SELECT*From学生表”。如果选择命令类型为2-adCmdTable”时,“表或存储过程名称”栏有效,可以选择数据源中的数据表,如“学生表”,则ADO数据控件连接到了xsgl数据库中的“学生表”
使用代码设置属性。在运行时,也可以用代码的方式动态地设置ADO数据控件的ConnectionString和RecordSource属性。ADO数据控件的这些属性更改后,需要调用Refresh方法激活这些变化,步骤如下。
a.创建Connection对象,设置好连接字符串(Connectionstring属性),并使用Open方法与数据源建立连接。
b.创建Recordset对象,并设置该对象的活动连接(Active Connection属性)为上一步已建好的Connection对象,指定数据的来源(Source属性),来源可以是任意的表名或Select查询语句等。
c.使用Recordset对象的open方法执行查询命令,查询结果会自动填充Fields对象。
d.利用Recordset对象来处理记录。
使用代码设置属性的典型代码如下。
(2)ADO数据控件的常用方法
Refresh方法。在程序运行中,如果更改ADO数据控件数据源属性后(如DatabaseName、ReadOnly、Exclusive或Connect属性值发生改变时),必须调用Refresh方法使所做的更改生效。
(3)ADO数据控件的常用事件
ADO数据控件提供可响应的事件较多,常用的是WillMove事件和MoveComplete事件。当用某种方法改变纪录集的指针使其从一条记录移到另一条记录,产生WillMove事件。当一条记录成为当前记录后,产生MoveComplete事件,它在WillMove事件之后发生。
(4)记录集RecordSet对象的常用属性和方法
①记录集RecordSet对象的常用属性
AhsolutePosition属性:absoluteposition返回当前记录指针值,第n条记录的Absolute Position属性值为n。
BOF和EOF的属性:BOF判定记录指针是否在首记录之前,若BOF为True,则当前位置在记录集的第1条记录之前。EOF判定记录指针是否在末记录之后,BOF和EOF属性为Absolute Position属性存在相关性。如果当前记录指针位于BOF,则Ahsoluteposition属性返回AdPosBOF(-2);当前记录指针位于BOF,Absolute Position属性返回apOstOl(-3);记录集为空,Absolute Position属性返回AdPosUnknown(-1)。
Recordcount属性:Recordcount属性对Recordset对象中的记录进行计数,该属性为只读属性。
②记录集RecordSet对象的常用方法
格式:ADO数据控件名.Recordset.方法名。
MoveFirst方法:将记录指针移到第一条记录。
例如,执行语句“Adodc1.Recordset.MoveFirst”后,记录指针将移到第一条记录。
MoveLast方法:将记录指针移到最后一条记录。
MoveNext方法:将记录指针向后移动一条记录。
MovePrevious方法:将记录指针向前移动一条记录。
AddNew方法:增加一条新记录,作为表最后一条记录。
Delete方法:删除当前记录。
Updata方法:更新记录内容。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。