计算机二级ado程序.docx
《计算机二级ado程序.docx》由会员分享,可在线阅读,更多相关《计算机二级ado程序.docx(12页珍藏版)》请在冰豆网上搜索。
计算机二级ado程序
ADO编程实验
【知识要点】
1、.ADO(ActiveXDataObjects动态数据对象):
是基于组件的数据库编程接口,
应用程序通过ADO访问不同数据源。
2、ADO对象模型:
ADO对象模型是对ADO对象集合的完整概括,它能够更加灵活、有效地发挥ADO对象的功能特性。
Recordset、Connection、和Command是ADO对象模型中的三个最核心对象,也是应用程序访问数据源时使用最多的三个对象。
3、Recordset(记录集):
用于存储来自数据库中基本表或命令执行结果的记录全集。
Recordset对象中的数据在逻辑上由每行的记录和每列的字段组成,每个字段又表示为一个Field对象。
●在使用Recordset对象之前,应声明并初始化一个Recordset对象:
DimrsAsADODB.Recordset
Setrs=NewADODB.Recordset
●创建Recordset对象之后,就可以通过Recordset对象的Open方法获取数据源操作的记录集,Open方法语法如下:
记录集对象变量.OpenSource,ActiveConnection,CursorType,LockType,Options
CursorType参数
常量
参数值
说明
AdOpenForwardOnly
0
使用仅向前类型游标,只能在记录集中向前移动(默认值)
AdOpenKeySet
1
使用键集类型游标,可以在记录集中向前或向后移动,但禁止查看或访问其他用户添加或删除的记录
AdOpenDynamic
2
使用动态类型游标,可以在记录集中向前或向后移动,允许查看或访问其他用户所做的添加、更新或删除
AdOpenStatic
3
使用静态类型游标,可以在记录集中向前或向后移动,其他用户所做的添加、更新或删除将不可见
LockType参数
常量
参数值
说明
AdLockReadOnly
0
只读,无法更改数据(默认值)
AdLockPessimistic
1
保守式锁定(逐个),指编辑记录时立即锁定数据源的记录
AdLockOptimistic
2
开放式锁定(逐个),只在调用Update方法时才锁定数据源的记录
AdLockBatchOptimistic
3
开放式批更新
●使用recordset完整格式:
DimrsAsADODB.Recordset
Setrs=NewADODB.Recordset
rs.Open"SQL语句",CurrentProject.Connection,2,2
……
rs.Close
Setrs=Nothing
也可以写为:
Dimconnasadodb.connection
Setconn=NewADODB.connection
DimrsAsADODB.Recordset
Setrs=NewADODB.Recordset
Dimstraqlasstring
Strsql="SQL语句"
conn.OpenCurrentProject.Connection
rs.Openstrsql,conn,2,2
……
……
rs.Close
conn.Close
Setrs=Nothing
Setconn=Nothing
●Recordset对象对字段的引用:
记录集对象变量(”字段名”)或者
记录集对象变量.fields(”字段名”)
如:
rs(“字段名”)或rs.fields(”字段名”)
注:
如果记录集的数据为空,则引用时会出错,所以在引用前要判断记录集是否为空。
●Recordset对象中常用的属性及方法:
记录集对象变量.BOF():
文件开始
记录集对象变量.EOF():
文件结束
记录集对象变量.addnew:
添加新记录
记录集对象变量.Delete:
删除当前记录
记录集对象变量.update:
将记录集中修改的记录更新到数据库
记录集对象变量.movefirst:
指针指在第一条记录
记录集对象变量.movelast:
指针指在最后一条记录
记录集对象变量.movenext:
指针向后移动一条记录
记录集对象变量.MovePrevious:
指针向前移一条记录
记录集对象变量.RecordCount:
获取记录数
注:
使用记录集对象变量.RecordCount方法时在currentproject.connection后的游标参数一般设置为1或3。
【实验内容】
1.打开“计算平均年龄”窗体,对窗体上的按钮编写事件代码,具体要求如下:
单击窗体上的“计算平均年龄”按钮,计算Student表中所有学生的平均年龄,并将结果显示在Text1文本框中。
2.打开窗体“平均身高”,在combo1中选择性别,在text1中显示对应性别的平均身高,数据来源于stu表。
3.打开窗体“统计人数”,在combo1中选择职称,在text1中显示对应职称的人数,数据来源于teacher表。
4.打开窗体“部门人数统计”,在list1中选择部门,在label2中显示对应部门的职工人数,数据来源于职工信息表。
5.打开“计算平均成绩和选课门数”窗体,对窗体上的组合框编写事件代码,具体要求如下:
根据组合框中选择的学号,查询成绩表中学生的平均成绩和选课数量,并将结果显示在文本框中。
6.打开窗体“按书号查询”,在combo1中选择书号,在文本框text2、text3、text4中分别显示对应书号的书名、库存量和预订量,如果库存量大于等于1000,在text1中显示正常,否则显示库存不足,。
数据来源于book表。
7.打开“股票查询”窗体,对窗体上的组合框编写事件代码,具体要求如下:
根据组合框中选择的股票代码,查询Stock表中该股票的相关信息,并将结果显示在文本框中。
8.打开窗体“计算总销售额”,在combo1中选择销售员,在文本框中显示对应销售员销售所有商品的总销售额,数据来源于sell表。
9.打开窗体“显示姓名”,在combo1中选择职务,在列表框中显示对应职务工作人员的姓名,数据来源于employee表。
10.打开“选课查询”窗体,对窗体上的组合框编写事件代码,具体要求如下:
根据组合框选择中的课程名称,查询选修该门课程的学生信息,并将学生的姓名显示在右边的列表框中。
11.打开“按性别查询学生信息”窗体,对窗体上的按钮编写事件代码,具体要求如下:
●在文本框中输入性别,单击“查询”按钮,则在“查询结果”的各个对应文本框中显示“学生信息”表中指定性别的第一位学生相应信息;
●若未指定具体性别就单击“查询”按钮,则显示“学生信息”表中第一个学生的相应信息。
12.打开“按性别查询学生信息A”窗体,对窗体上的按钮编写事件代码,具体要求如下:
●单击“查询”按钮,则在“查询结果”的各个对应文本框中显示“学生信息”表中指定性别的第一位学生相应信息及对应的专业名称,以及查询到的所有记录数
(提示:
记录数用RecordCount属性获取时,Recordset对象打开的游标参数值设置为1或3,)
13.打开“Search”窗体,对窗体上的按钮编写事件代码,具体要求如下:
●在文本框Text1中输入要查询的姓名,单击“查阅”按钮,查询“teacher”表中相应教师的信息,若未找到则弹出信息框显示“查无此人!
”;若找到,则在窗体相应文本框中显示教师的姓名、性别、出生日期、专业名称,并在选项组控件Frame1的相应选项按钮处标示教师的职称情况。
14.打开“添加成绩记录”窗体,点击“添加记录”按钮实现如下功能:
在“gread”表中新增一条记录,新增记录字段内容依次为:
学号:
S06001,课程编号:
C0602,成绩:
86,记录添加完成后提示信息“已完成新记录的添加!
”。
15.打开“添加课程”窗体,对窗体上的添加按钮编写事件代码,具体要求如下:
窗体运行时,在四个文本框中输入课程编号、课程名称、学时、学分,单击添加按钮,判断text1中的课程编号在course表中是否存在,如不存在,则添加该记录,否则,不添加。
16.打开“Turn_Grade”窗体,对窗体上的按钮编写事件代码,要求实现单击“等级评定”按钮,将在“学生信息”表中,根据每条记录的“综合分”字段值情况进行等级评定,等级结果存放在当前记录的“等级”字段中,并在子窗体中显示,最后显示提示框内容为“评定完毕!
”。
(注:
等级评定规则:
综合分>=90,等级为“优秀”;80<=综合分<90,等级为“良好”;70<=综合分<80,等级为“中等”;60<=综合分<70,等级为“及格”;综合分<60,等级为“不及格”。
)
17.打开“统计指定学时范围的课程信息”窗体,对窗体上的按钮编写事件代码,数据来源于“课程信息”表,具体要求如下:
●窗体启动后,“浏览”按钮不起作用,子窗体显示所有课程信息;
●选中某一指定学时范围选项,单击“统计”按钮,在相应Text1文本框中显示指定学时范围的课程总门数,并激活“浏览”按钮;
●单击“浏览”按钮,在子窗体中显示指定学时范围的所有课程信息
18.打开“按职称查询教师信息”窗体,对窗体上的按钮编写事件代码,具体要求如下:
●在组合框Combo1中选择一职称,则teacher和专业表的相应职称第一个教师的姓名、性别、出生日期和专业名称分别显示在对应文本框中,并将Command1~Command6按钮激活;
●单击4个记录指针移动按钮,可依次浏览相应职称的各位教师信息,要求考虑记录指针移至记录首部或末尾问题;
●单击“更新”按钮,可更新当前显示的教师的姓名、性别、出生日期和专业名称这四个基本信息;
●单击“删除”按钮,可删除当前教师的信息;
●单击“退出”按钮,则退出当前窗体。