VB自动出题系统的设计与实现
第五章 系统总体规划
系统功能
一. 系统的设计思路
1 应用程序设计结构
1 建立数据库,基本资料就存放在其中
通过Access建立数据库
2 用VB开发出界面连接数据库
使用ADO控件的连接数据库,通过 DATAGRID 和 TEXT显示出来。
. 3 在应用程序中用查询和统计等手段对数据库的资料进行处理,得到有效的数据,分析管理情况,得出结论和措施,然后就可以通过措施,达到管理提高效率的目的。
具体是具体实现办法
(1)连接数据源
利用Connection对象可以创建一个数据源的连接.应用的方法是Connection对象的Open方法.
语法:
Connection对象.Open ConnectionString, UserID, PassWord, OpenOptions
其中:
Connection对象为你定义的Connection对象的实例;
ConnectionString为可选项,包含了连接的数据库的信息;
UserID 可选项,包含建立连接的用户名;
PassWord为可选项,包含建立连接的用户密码;
OpenOptions为可选项,假如设置为adConnectAsync,则连接将异步打开.
利用Connection对象可以创建一个数据源的连接.应用的方法是Connection对象的Open方法.
语法:
Connection对象.Open ConnectionString, UserID, PassWord, OpenOptions
其中:
Connection对象为你定义的Connection对象的实例;
ConnectionString为可选项,包含了连接的数据库的信息;
UserID 可选项,包含建立连接的用户名;
PassWord为可选项,包含建立连接的用户密码;
OpenOptions为可选项,假如设置为adConnectAsync,则连接将异步打开.
(2)打开记录集对象
实际上记录集返回的是一个从数据库取回的查询结果集.因此他有两种打开方法:一种使用记录集的Open方法,另一种是用Connection对象的Execute方法.
实际上记录集返回的是一个从数据库取回的查询结果集.因此他有两种打开方法:一种使用记录集的Open方法,另一种是用Connection对象的Execute方法.
(a)记录集的Open方法
语法:
Recordset.Open Source, ActiveConnection, CursorType, LockType, Options
其中:
Recordset为所定义的记录集对象的实例.
Source可选项,指明了所打开的记录源信息.可以是合法的命令,对象变量名,SQL语句,表名,存储过程调用,或保存记录集的文件名.
ActiveConnection可选项,合法的已打开的Connection对象的变量名,或者是包含ConnectionString参数的字符串.
CursorType可选项,确定打开记录集对象使用的指针类型.
LockType可选项 确定打开记录集对象使用的锁定类型.
语法:
Recordset.Open Source, ActiveConnection, CursorType, LockType, Options
其中:
Recordset为所定义的记录集对象的实例.
Source可选项,指明了所打开的记录源信息.可以是合法的命令,对象变量名,SQL语句,表名,存储过程调用,或保存记录集的文件名.
ActiveConnection可选项,合法的已打开的Connection对象的变量名,或者是包含ConnectionString参数的字符串.
CursorType可选项,确定打开记录集对象使用的指针类型.
LockType可选项 确定打开记录集对象使用的锁定类型.
(b)Connection对象的Execute方法
语法:
Set recordset=Connection.Execute(CommandText,RecordsAffected,Options)
参数说明:
CommandText 一个字符串,返回要执行的SQL命令,表名,存储过程或指定文本.
RecordsAffected 可选项,Long类型的值,返回操作影响的记录数.
Options 可选项,Long类型值,指明如何处理CommandText参数.
介绍完了如何打开数据库下面说说怎么使用吧.
语法:
Set recordset=Connection.Execute(CommandText,RecordsAffected,Options)
参数说明:
CommandText 一个字符串,返回要执行的SQL命令,表名,存储过程或指定文本.
RecordsAffected 可选项,Long类型的值,返回操作影响的记录数.
Options 可选项,Long类型值,指明如何处理CommandText参数.
介绍完了如何打开数据库下面说说怎么使用吧.
(3)使用记录集
(a)添加新的记录:
在ADO中添加新的记录用的方法为:AddNew 它的语法为:
Recordset.AddNew FieldList, Values
Recordset为记录集对象实例
FieldList为一个字段名,或者是一个字段数组.
Values为给要加信息的字段赋的值,如果FiledList为一个字段名,那么Values应为一个单个的数值,假如FiledList为一个字段数组,那么Values必须也为一个个数,类型与
FieldList相同的数组.
再用完AddNew方法为记录集添加新的记录后,应使用UpDate将所添加的的数据存储在数据库中.不过你最好在用UpDate方法之前使用CancelUpdate方法来取消该项操作.
在ADO中添加新的记录用的方法为:AddNew 它的语法为:
Recordset.AddNew FieldList, Values
Recordset为记录集对象实例
FieldList为一个字段名,或者是一个字段数组.
Values为给要加信息的字段赋的值,如果FiledList为一个字段名,那么Values应为一个单个的数值,假如FiledList为一个字段数组,那么Values必须也为一个个数,类型与
FieldList相同的数组.
再用完AddNew方法为记录集添加新的记录后,应使用UpDate将所添加的的数据存储在数据库中.不过你最好在用UpDate方法之前使用CancelUpdate方法来取消该项操作.
(b)修改记录集
其实修改核对记录集中的数据重新赋值没有什么太大的区别,只要用SQL语句将要修改的字段的一个数据找出来重新赋值就可以了.这里不再细说了.
其实修改核对记录集中的数据重新赋值没有什么太大的区别,只要用SQL语句将要修改的字段的一个数据找出来重新赋值就可以了.这里不再细说了.
(c)删除记录
在ADO中删除记录集中的数据的方法为:Delete方法,这与DAO对象的方法相同,但是在ADO中它的能力增强了,可以删掉一组记录了.
它的语法如下:
Recordset.Delete AffectRecords
其中的,AffectRecords参数是确定Delete方法作用的方式的,它的取值如下:
adAffectCurrent 只删除当前的记录
adAffectGroup 删除符合Filter属性设置的那些记录.为了一次能删除一组数据,应设置Filter属性.
在ADO中删除记录集中的数据的方法为:Delete方法,这与DAO对象的方法相同,但是在ADO中它的能力增强了,可以删掉一组记录了.
它的语法如下:
Recordset.Delete AffectRecords
其中的,AffectRecords参数是确定Delete方法作用的方式的,它的取值如下:
adAffectCurrent 只删除当前的记录
adAffectGroup 删除符合Filter属性设置的那些记录.为了一次能删除一组数据,应设置Filter属性.
(d)查询记录
在ADO中查询的方法很灵活,有几种查询的方法.
●使用连接对象的Execute方法执行SQL命令,返回查询记录集.
●使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集.
第一个方法的具体语法在前面数据连接时已经介绍过了,下面就第二方法具体说一下.
Command对象的Execute方法的语法如下:
Command.Execute RecordsAffected, Parameters, Options '不返回记录集
或者 Set Rscordset=cmmnad.Execute(RecordsAffected,Parameters,Options) '返回记录集
CommandText的语法为:
Command.CommandText=stringvariable
其中: stringvariable为字符串变量,包含SQL语句,表名或存储过程.
在ADO中查询的方法很灵活,有几种查询的方法.
●使用连接对象的Execute方法执行SQL命令,返回查询记录集.
●使用Command对象的Execute方法执行CommandText属性中设置的SQL命令,返回查询记录集.
第一个方法的具体语法在前面数据连接时已经介绍过了,下面就第二方法具体说一下.
Command对象的Execute方法的语法如下:
Command.Execute RecordsAffected, Parameters, Options '不返回记录集
或者 Set Rscordset=cmmnad.Execute(RecordsAffected,Parameters,Options) '返回记录集
CommandText的语法为:
Command.CommandText=stringvariable
其中: stringvariable为字符串变量,包含SQL语句,表名或存储过程.
(4) 断开连接
在应用程序结束之前,应该释放分配给ADO对象的资源,操作系统回收这些资源并可以再分配给其他应用程序.
使用的方法为:Close方法.
语法如下:
Object.Close ' Object为ADO对象
在应用程序结束之前,应该释放分配给ADO对象的资源,操作系统回收这些资源并可以再分配给其他应用程序.
使用的方法为:Close方法.
语法如下:
Object.Close ' Object为ADO对象
二. 系统的技术要点
1多用户登陆问题
a 建立模块,Module1
b 在模块中申明变量 Public user
c 在数据库建立用户表,存放用户名和密码,然后输入多个用户
d 通过ADO代码连接到数据库。
E 通过SQL语句 判断是否用户数据库有。
F 如果没有则退出。
G 如果有 通过SQL语句判断是否密码正确。
H 如果正确则发送数据库的该用户名到公共变量 user = myrs("user")
I 通过变量决定各个用户的权限。
2 出试卷
手动出试卷
将题库的一个字段设为是否出试卷。
然后通过SQL语句筛选出记录,形成出试卷库。
SELECT * FORM TK WHERE 是否出卷=“是”
自动出试卷
获得随即数,然后自动出题
nb = myrs3.RecordCount
rdnb = Int((nb) * Rnd()) '获得随机数
myrs3.Move rdnb
t1 = CStr(myrs3("编号"))
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
myrs2.Open "insert into sj select * from tkgl2 where 编号='" + t1 + "' ", mycn, adOpenKeyset, adLockOptimistic
myrs3.Delete
myrs3.MoveFirst
3 多级查询问题
单级查询使用 SELECT * FORM TK WHERE 字段 =SS
多级查询使用 SELECT * FORM TK WHERE 字段1 =SS AND字段2 =SS2
以上内容只是毕业设计作品的部分资料介绍,如果了解更多详情请联系客服QQ:57510459
购买帮助>>
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论