4.3.5 ADODC控件程序实例

4.3.5 ADODC控件程序实例

前面我们介绍了ADODC控件的相关属性、事件和方法,下面我们将通过几个程序实例来说明怎样运用ADODC控件进行编程。

程序实例一:

该程序主要是为了说明如何把ADODC控件与数据库联接起来,如何对数据绑定控件进行绑定。首先我们通过Access建立一个名为STU的数据库,在数据库当中建立一张表名为STUINFO的表,该表中含有学号、姓名、性别、年龄以及家庭住址5个字段。建立好之后,再往里面输入一些数据,保存数据库即可。其次进入Visual Basic,按照下面的步骤把ADODC控件添加到标准工具箱里面:打开“工程”菜单,选择“部件”,在弹出的“部件”对话框中找到“Microsoft ADO Data Control 6.0 (OLEDB)”选项,在其前面打一个钩,再单击“确定”即可。然后再把该ADODC控件挂到窗体上,其默认的名称是:ADODC1。本程序界面如图4-7所示。

img136

图4-7 程序界面

那么,如何把ADODC控件与数据库联接起来呢?首先选中ADODC控件,在属性窗口里找到ConnectionString属性,然后单击该属性后面有三个点的那个小方块,这时就会弹出一个ADODC属性对话框(或者直接在ADODC控件上单击右键再选择ADODC属性),如图4-8所示。

img137

图4-8 ADODC属性对话框

在该对话框中选择“使用联接字符串”,再单击“生成(U)…”按钮,然后弹出如图4-9所示的界面。

img138

图 4-9

在如图4-9所示的对话框中选择你所需要的数据库引擎。由于我们所使用的是Access数据库,所以在此选择“Microsoft Jet 4.0 OLE DB Previder”,再单击“下一步”,将得到如图4-10所示的对话框。

img139

图4-10 数据库联接属性对话框

在“选择或输入数据库名称(D):”下面输入你所要联接的数据库的路径和名称,或者单击后面有三个点的那个按钮直接进行选择。由于这里所建立的数据库是保存在E盘的根目录下,所以输入的是“E:\stu.mdb”。现在我们还可以测试一下,看联接是否成功:单击“测试联接”,如果看到了如图4-11所示的对话框,则表示联接成功了,否则就需要重新检查前面的设置是否正确。

img140

图4-11 测试联接对话框

只有联接正确之后才会显示该对话框。现在单击“确定”按钮,便又回到图4-10,再单击“确定”,又将会回到如图4-8所示的对话框。在该对话框里面选择“记录源”,将会得到如图4-12所示的对话框。

img141

图4-12 数据库联接属性对话框

在“命令类型”下面选择“2 – adCmdTable”,在“表或存储过程名称”下面选择你所要联接的数据库里面的那一张数据表,在本程序中选择了“STUINFO”,最后再单击“确定”按钮。到此为止,我们的ADODC控件就和数据库联接起来了。但数据表里面的记录还没有显示出来,为了能让数据表里面的记录显示在相应的文本框里,所以最后一步我们就应该设置窗体上文本框相应的属性。所需要设置的属性只有两个:DataSource 属性和 DataField属性,我们以窗体上的第一个文本框为例来说明绑定的过程。首先选中第一个文本框,该文本框是用来显示数据表里面的“学号”这个字段的,找到其DataSource属性,将其设置为:ADODC1,设置好之后再找到其DataField属性,在下拉列表里面选择“学号”,第一个文本框的属性设置就完成了。对于后面四个文本框,设置的方法是一样的,只不过每次在设置DataField属性时所选择的字段不同,这里不再一一说明。经过以上步骤,第一个简单的程序就编好了,按F5键运行程序,结果如图4-13所示。

在本程序当中,通过单击Adodc1控件上的四个按钮可让数据表中的记录移动到上一条、下一条、第一条或最后一条。编写上面这个程序的时候我们没有编写一条代码,故而其实现的功能非常有限。

img142

图4-13 程序实例一的运行结果图

程序实例二:

在实例一的界面上再增加8个命令按钮,然后把它们的Caption属性分别设置为如图4-14所示。另外再把Adodc1的Visible属性设置为False,这样当程序运行的时候,Adodc1控件就不可见了。之所以要让Adodc1控件隐藏起来,是因为在这个程序里面我们要通过代码来控制数据库当中记录的移动,并实现添加、删除等简单功能。按F5键,程序运行的界面如图4-14所示。

img143

图4-14 程序实例二的运行界面

由于我们还没有对刚添加的8个按钮进行编程,所以上面只是一个界面而已,现在我们返回到设计状态下,分别对这8个按钮进行编程。这8个按钮的名称依次为:Command1、Command2、Command3、Command4、Command5、Command6、Command7、Command8。编程之前先介绍编程中要用到的几个RecordSet对象集的方法和属性:

1.方法(注意以下所提及的“对象名”是指ADODC控件的名称)

(1) MoveFirst方法:把记录指针移到数据表中的第一条记录。

语句格式为:对象名. RecordSet.MoveFirst

(2) MovePrevious方法:把记录指针移到当前记录的上一条记录。

语句格式为:对象名. RecordSet.MovePrevious

(3) MoveNext方法:把记录指针移到当前记录的下一条记录。

语句格式为:对象名. RecordSet.MoveNext

(4) MoveLast方法:把记录指针移到当前数据表的最后一条记录。

语句格式为:对象名. RecordSet.MoveLast

(5) AddNEW方法:向当前数据表中添加一条新记录。

语句格式为:对象名. RecordSet.AddNew

(6) Delete方法:删除数据表中的当前记录。

语句格式为:对象名. RecordSet.Delete

(7) UpDate 方法:用于提交数据库里面的记录,任何对数据库所做的修改都将被写到数据库当中。

语句格式为:对象名. RecordSet. UpDate

2.属性

(1) BOF属性:当对数据库里面的数据进行操作时,如果记录指针移到了数据表中第一条记录之前,BOF属性返回True,否则返回False。

(2) EOF属性:当对数据库里面的数据进行操作时,如果记录指针移到了数据表中最末一条记录之后,EOF属性返回True,否则返回False。

上面介绍的这些方法和属性非常重要,希望大家能牢记。

现在我们再回到程序的主界面,看看如何针对每个命令按钮进行编程。

第一个命令按钮(Command1):从其标题可知其功能是把记录指针移到数据表中第一条记录的位置上去,所以其单击事件过程为:

img144

第二个命令按钮(Command2):从其标题可知其功能是把记录指针移到数据表中当前记录的上一条记录的位置上去。对此按钮编程的时候我们必须要注意,如果当前记录是第一条记录,那么记录指针再往上移动的话就会移到数据表之外,从而产生错误,因此在移动记录指针之前必须判断是否已经到达了第一条记录之前,如果到达了,则把记录指针移到第一条记录所在的位置,所以其单击事件过程为:

img145

第三个命令按钮(Command3):从其标题可知其功能是把记录指针移到数据表中当前记录的下一条记录的位置上去。对此按钮编程的时候我们必须要注意的是,如果当前记录已是最后一条记录,那么记录指针再往下移动的话就会移到数据表之外,从而产生错误,因此在移动记录指针之前必须判断是否已经到达了最后一条记录之后,如果到达了,则把记录指针移到最后一条记录所在的位置,所以其单击事件过程为:

img146

第四个命令按钮的作用是把记录指针移到最后一个记录上去,其事件过程如下:

img147

第五个按钮的作用是往数据表里面添加一条记录,其事件过程为:

img148

至于后面几个按钮的功能在此就不再一一介绍,它们的事件过程分别为:

img149

本程序示例到此也就结束了,但在本程序中还有很多欠缺的地方,如各个控件的有效性设置方面,由于篇幅有限就没有考虑,希望读者能自己补充完整。

程序示例三:

本程序示例是为了说明怎么使用DataGrid控件来显示数据库里面的信息和怎么对数据库里面的信息进行查询。在编本程序的时候首先应按照前面介绍的方法,把ADODC控件和DataGrid控件添加到窗体上,使用的数据库仍然是和上两个示例相同的数据库,其界面如图4-15所示。

img150

图4-15 程序示例三的主界面

对于ADODC控件的属性设置在此不再介绍,若有不清楚的地方请参考上两个程序实例。另外的控件的相关属性设置如表4-3所示。

表4-3 程序示例三的相关属性设置

img151

编这个程序的时候,首先我们在窗体的Load事件下做一些初始化工作,事件过程如下:

img152

然后再针对Command1的单击事件编程,事件过程如下:

img153

img154

' 以下判断语句的作用是判断数据库里面是否有想查找的结果,如果没有则给出一些提示,并做出善后处理。

img155

以上语句都作了相应的注释,希望读者注意理解。

现在我们按F5键运行程序,并在第一个组合框里选择“姓名”,第二个组合框里选择“IS”,在文本框里输入“张灵”,单击“开始查找”,最后的查找结果如图4-16所示。

img156

图4-16 程序运行界面

针对ADODC控件编程的三个简单实例只是为了说明利用ADODC控件进行编程的最基本的过程和方法,如果想更进一步地进行编程,请参阅相关书籍。