242 Visual Basic程序设计导学
图10.19 “属性页”对话框
(2)如果已经创建了一个Microsoft数据链接文件(.UDL),选择“使用Data Link文件”单选按钮,并单击“浏览”按钮,以找到计算机上的文件。
(3)如果使用DSN,则单击“使用ODBC数据源名”连接,并从框中选择一个DSN,或单击“新建”按钮创建一个。
(4)如果想创建一个连接字符串,选择“使用连接字符串”单选按钮,单击“生成”按钮,然后在如图10.20所示的“数据链接属性”对话框创建一个连接。
图10.20 “数据链接属性”的“连接”选项卡
(5)在创建连接字符串后,单击“确定”按钮。ConnectionString属性将使用一个类似于下面一行的字符串来填充:
第10章 VB与数据库 drive=[SQL Server];server=bigsmile;uid=sa;pwd=pwd;database=pubs
243 在运行时,可以动态地设置ConnectionString更改数据库。 4. RecordSource属性
RecordSource属性设置要链接的表或者SQL查询语句。可以在“属性”窗口中将“记录源”属性设置为一个SQL语句。例如:
SELECT * FROM student WHERE sex=\男\
5. CommandType属性
CommandType属性用于指定RecordSource属性的取值类型。可直接在属性窗口中CommandType属性框右边的下拉列表中选择需要的类型,其取值如下:
· adCmdUnknown:默认值。CommandText属性中的命令类型未知。 · adCmdTable:将CommandText作为其列全部由内部生成的SQL查询返回的表格的名称进行计算。
· adCmdText:将CommandText作为命令或存储过程调用的文本化定义进行计算。 · adCmdStoreProc:将CommandText作为存储过程名进行计算。 6. UserName属性
UserName属性指定用户的名称,当数据库受密码保护时,需要指定该属性。该属性可以在ConnectionString中指定。如果同时提供一个ConnectionString属性以及一个UserName属性,则ConnectionString中的值将覆盖UserName属性的值。
7. Password属性
Password属性指定密码,在访问一个受保护的数据库时指定密码是必需的。和Provider属性与UserName属性类似,如果在ConnectionString属性中指定了密码,则将覆盖在该属性中指定的值。
8. ConnectionTimeout属性
该属性设置等待建立一个连接的时间,以秒为单位。如果连接超时,则返回一个错误。
10.5.2 ADO Data控件的方法
ADO Data控件的常用方法如下: 1. UpdateControls方法
该方法用于更新绑定控件的内容。绑定控件是通过设置控件的DataSource属性和DataField属性,从而将该控件与ADO Data控件的某个字段绑定到一起的。使用绑定控件,可以让该控件的内容自动更新,取回记录集当前记录的内容或者将更新的内容保存到记录
244 Visual Basic程序设计导学 集中。
2. AddNew方法
用于在ADO Data控件的记录集中添加一条新记录。其使用语法如下:
Adodc1.Recordset.AddNew
其中Adodc1是一个ADO Data控件的名字。在添加语句之后,应该给相应的各个字段赋值,然后调用UpdateBatch方法保存记录,或者调用CancelUpdate方法取消保存。
3. Delete方法
用于在ADO Data控件的记录集中删除当前记录。其使用语法如下:
Adodc1.Recordset.Delete
4. MoveFirst,MoveLast,MoveNext和MovePrevious方法
用于在ADO Data控件的记录集中移动记录。MoveFirst,MoveLast,MoveNext和MovePrevious方法分别移到第一个记录、最后一个记录、下一个记录和上一个记录。其使用语法如下:
Adodc1.Recordset.MoveFirst Adodc1.Recordset.MoveLast Adodc1.Recordset.MoveNext Adodc1.Recordset.MovePrevious
5. CancelUpdate方法
用于取消ADO Data控件的记录集中添加或编辑操作,恢复修改前的状态。其使用语法如下:
Adodc1.Recordset.CancelUpdate
6. UpdateBatch方法
用于保存ADO Data控件的记录集中添加或编辑操作。其使用语法如下:
Adodc1.Recordset.UpdateBatch
10.5.3 ADO Data控件的事件
ADO Data控件的常用事件如下: 1. WillMove和MoveComplete事件
WillMove事件在当前记录的位置即将发生变化时触发,如使用ADO Data控件上的按钮
第10章 VB与数据库 245 移动记录位置时。WillComplete事件在位置改变完成时触发。
2. WillChangeField和FieldChangeComplete事件
WillChangeField事件是当前记录集中当前记录的一个或多个字段发生变化时触发。而FieldChangeComplete事件则是当字段的值发生变化后触发。
3. WillChangeRecord和RecordChangeComplete事件
WillChangeRecord事件是当记录集中的一个或多个记录发生变化前产生的。而RecordChangeComplete事件则是当记录已经完成后触发。
10.5.4 ADO Data控件的应用例子
本例设计一个窗体,先将ADO Data控件放置到窗体中,其名字为Adodc1,进入其属性窗口,单击ConnectionString属性右边的“...”按钮,出现“属性页”对话框,单击其中的“使用连接字符串”选项,再单击其右边的“生成”按钮进入“数据链接属性”对话框的“提供者”选项卡,选择其中的“Microsoft Jet 3.51 OLE DB Provider”,单击“下一步”按钮,出现如图10.20“连接”选项卡,单击“选择或输入数据库名称”右边的“... ”按钮,在出现的“打开”对话框中选中“E:\\vb\\student.mdb”数据库,单击“测试连接”按钮,在成功连接后单击“确定”按钮返回。
再在属性窗口中单击“RecordSource”属性右边的“...”按钮,在出现的对话框中的“命令类型”中选择“2-adCmdTable”。在“表或存储过程名称”列表中选择“学生表”,单击“确定”按钮返回。
然后在窗体中设计其他标签、文本框、组合框和命令按钮,如图10.21所示。窗体各控件的属性设置如表10.4所列。
图10.21 ADO Data控件应用例子界面设计
表10.4 各控件属性设置
控件名 Adodc1
属性名 ConnectMode CursorLocation
设置值 3 3
246 Visual Basic程序设计导学
ConnectionTimeout CursorType LockType CommandType BOFAction EOFAction ConnectStringType Connect
OLEDBString
DataSourceName UserName Password RecordSource Caption
15 3 3 2 0 0 1
\Persist Security Info=False; Data Source=E:\\vb\\student.mdb\\Persist Security Info=False; Data Source=E:\\vb\\student.mdb\\\\\学生表\\数据浏览\
续表
控件名 CmdUpdate Combo2 Combo1 cmdClose cmdFind cmdDelete cmdAdd txtFields(0)
txtFields(1)
txtFields(2)
lblLabels(0)
lblLabels(1)
属性名 Caption DataField DataSource DataField DataSource Caption Caption Caption Caption DataField DataSource DataField DataSource DataField DataSource AutoSize Caption AutoSize Caption
设置值 \更新\\民族\\\性别\\\关闭\\查找\\删除\\添加\\学号\\\姓名\\\班号\\-1 'True \学号:\-1 'True \姓名:\