VB设计学生成绩管理系统文档格式.docx
- 文档编号:6300371
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:37
- 大小:444.80KB
VB设计学生成绩管理系统文档格式.docx
《VB设计学生成绩管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《VB设计学生成绩管理系统文档格式.docx(37页珍藏版)》请在冰点文库上搜索。
据库进行操作,但只能针对关系数据库进行操作(如SQLServer,Oracle,Access,
Excel等),目前所有的关系数据库都符合该标准。
ODBC本质上是一组数据库访
问API(应用程序编程接口),由一组函数调用组成,核心是SQL语句,他的结构
图如下图1:
图1.1
在具体操作时,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提
供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体
数据库的联系。
这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立
起与相应数据库的连接。
(2)OLEDB:
OLEDB:
数据库链接和嵌入对象(ObjectLinkingandEmbedding
DataBase)。
OLEDB是微软提出的基于COM思想且面向对象的一种技术标准,
目的是提供一种统一的数据访问接口访问各种数据源,这里所说的"
数据"
除了标准
的关系型数据库中的数据之外,还包括邮件数据、Web上的文本或图形、目录服
务(DirectoryServices)、以及主机系统中的文件和地理数据以及自定义业务对
象等。
OLEDB标准的核心内容就是要求对以上这些各种各样的数据存储(Data
Store)都提供一种相同的访问接口,使得数据的使用者(应用程序)可以使用同样
的方法访问各种数据,而不用考虑数据的具体存储地点、格式或类型,他的结构
图如下图2:
图1.2
(b)VB中数据库访问对象:
(1)ADOData控件:
ADOData控件使用MicrosoftActiveX数据对象(ADO)来快速建立数据绑
定的控件和数据提供者之间的连接。
数据绑定控件是任何具有“数据源”属性的控
件。
数据提供者可以是任何符合OLEDB规范的数据源,这里可能是对ADO的一
个封装,他访问数据库的接口可以使用ODBC、也可以使用OLEDB,但OLEDB
灵活,不用在系统中配置数据源,而且效率高,所以现在使用OLEDB更多点,下
面程序中也是用OLEDB来介绍的,下面简单介绍一下ADODC控件的使用层次图。
ADODC在VB数据库程序设计中起了一个桥梁的作用,可以方便VB中的一些控
件直接和数据库关联,他的使用示意图如下:
图1.3
(2)ADODB对象
ADO是ActiveXDataObjects的缩写,是一项新的数据库的存取技术,他最主要包含三个对象,Connection、Recordset、Command,
Connection对象:
连接对象,负责通过OLEDB或ODBC建立与数据库之间的连接。
Recordset对象:
记录集对象,存放从数据库中得到的记录,这些可能是执行某条
SQL语句的结果。
Command对象:
执行SQL语句返回Recordset类型的结果。
基本的用法:
(1)连接数据源
(2)打开记录集对象
(3)使用记录集
(4)断开连接
具体的应用后面在学生成绩录入中会介绍到。
2.VB连接SQLServer数据库
a)用可视ADODC控件连接数据库,如图将控件选择到工具栏。
(1)设置ADODC的ConnectionString属性。
(2)
图2.1
图2.2
(2)生成连接字符串。
图2.3
图2.4
(3)设置ADODC的RecordSource属性。
图2.5
命令类型:
adCmdText:
值1,表示命令为SQL语句。
adCmdTable:
值2,表示命令为一表名。
adCmdStoredProc:
值4,表示命令是一存储过程名。
adCmdUnknown:
值8,表示不确定命令类型。
(4)此时数据源控件已连接好数据库,可以直接访问它,或者可以充当数据表格控件的数据源使用。
b)用ADODB.CONNECTION对象连接数据库
(1)创建ADODB.CONNECTION对象
PrivateSqlConAsNewADODB.Connection
SqlCon.Provider="
SQLOLEDB"
SqlCon.Open"
Server=microsof-cee903\dcr;
DataBase=XSCJ;
UID=wmx;
PWD=1234;
"
(2)使用ADODB.CONNECTION对象
PrivateSqlCmdAsNewADODB.Command
‘指定Command对象所使用的连接
SqlCmd.ActiveConnection=SqlCon
SqlCmd.CommandText="
select*fromXS"
‘执行命令
SetSqlRes=SqlCmd.Execute
3.学生成绩管理系统
本演示系统是一个用VB实现的简单的学生成绩管理系统,使用用可视ADODC控件和ADODB对象来访问后台数据库服务器的,包含学生信息的查询、学生休息的录入修改删除、学生成绩的录入修改,下面就分别说明各模块的具体实现。
4.系统主界面
图4.1
主要功能:
主界面,导航作用,点击可进入操作窗口。
创建过程:
(1)创建菜单:
图4.2
分别起名为:
学生信息查询(msStuSearch)、学生信息修改(msStuInfo)、
学生成绩修改(msStuScore)、退出系统(msQuitSys)
(2)创建工具条:
图4.3
创建工具条,创建ImageList控件,导入图标,与菜单关联;
退出系统、
学生信息查询、学生信息修改、学生成绩修改的index分别为3、6,7,8。
主要代码:
菜单Click的处理过程
退出系统菜单
PrivateSubmsQuitSys_Click()
End
EndSub
‘学生信息修改菜单
PrivateSubmsStuInfo_Click()
AddStu.Show
‘学生成绩录入菜单
PrivateSubmsStuScore_Click()
AddStuScore.Show
‘学生信息查询菜单
PrivateSubmsStuSearch_Click()
StuSearch.Show
工具条Click的处理,分别对应调用菜单中的处理过程
PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComctlLib.Button)
‘学生信息查询图标
IfButton.Index=6Then
msStuSearch_Click
EndIf
‘学生信息修改图标
IfButton.Index=7Then
msStuInfo_Click
‘学生成绩修改图标
IfButton.Index=8Then
msStuScore_Click
‘退出系统图标
IfButton.Index=3Then
msQuitSys_Click
5.学生信息查询
目的与要求:
了解使用控件怎么去显示数据库中的数据,同时了解查询的基本方法。
程序界面:
ADODC控件
图5.1
主要功能:
可以满足简单查询的需要,什么条件也不输则分页显示所有记录,可以输入条件进行简单的模糊查询,各条件之间为与的关系,在查询的结果中移动记录指针可以查看这个学生的具体选课信息
(1)在窗体上放入两个学生信息查询的ADODC和学生选课信息的ADODC、创建两个学生信息显示的DataGrid和学生选课信息显示的DataGrid,并分别起名为StuADO,StuKCADO,StuDG,StuKCDG。
放入学号Edit、姓名Edit和专业下拉列表框,为了美观StuKCADO隐藏在StuKCDG这个后面。
(2)设置StuADO的ConnectionString属性为
Provider=SQLOLEDB.1;
IntegratedSecurity=SSPI;
PersistSecurityInfo=False;
UserID=sa;
InitialCatalog=XSCJ;
DataSource=microsof-cee903\dcr
(3)设置StuADO的RecordSource属性为
select*fromXS,CXBwhereXS.XB=CXB.XB
(4)设置StuDG的DataSource属性为StuADO。
(5)设置StuKCADO的ConnectionString属性为
(6)设置StuKCADO的RecordSource属性为
select*fromXS,KC,XS_KC
whereXS.XH=XS_KC.XHandKC.KCH=XS_KC.KCH
(7)设置StuKCDG的DataSource属性为StuKCADO。
实现过程:
直接打开时由于控件属性的设置,所以显示所有记录,当输入查询条件时点击查询按钮则调用MakeSqlStr函数产生查询字符串,然后重新设置控件的属性,打开控件显示查询结果集。
当专业改变时调用StuZY_Click函数来分别显示所选的专业学生记录,当查询结果学生信息记录集中移动记录指针时,可以在下面的选课表中看到学生选课的信息。
主要代码:
根据学号、姓名的输入信息和专业的选择生成模糊查询的SQL字符串
DimSqlStrAsString‘保存查询字符串的
PublicSubMakeSqlStr()‘产生查询字符串的
SqlStr="
IfTrim(StuXH)<
>
"
Then
SqlStr="
andXHlike'
%"
+Trim(StuXH.Text)+"
%'
EndIf
IfTrim(StuXM)<
SqlStr=SqlStr+"
andXMlike'
+Trim(StuXM.Text)+"
IfTrim(StuZY)<
所有专业"
andZY='
+Trim(StuZY.Text)+"
'
“专业”列表Click事件处理,显示选择当前专业,并且符合学号、姓名查询条件的学生的信息
PrivateSubStuZY_Click()
‘当专业改变时从新从数据库中提取数据
MakeSqlStr
StuADO.RecordSource="
select*fromXS,CXBwhereXS.XB=CXB.XB"
_
&
SqlStr+"
StuADO.Refresh
“查询”Click事件处理,用生成的模糊查询的SQL字符串,来刷新StuADO,并显示到关联的DataGrid中
PrivateSubStuSch_Click()
‘点击查询按钮从数据库中提取数据
SqlStr
学生信息显示的DataGrid的Click事件处理,以当前学生信息的学号作为查询条件,从XS_KC表中查找当前学生的选课记录,并显示到学生课程显示的StuKCDG中
PrivateSubStuDG_Click()
‘单击DataGrid中学生记录在下面显示学生课程成绩
StuKCADO.RecordSource="
select*fromXS,KC,XS_KC"
&
WhereXS.XH=XS_KC.XHAndKC.KCH=XS_KC.KCH"
&
andXS.XH='
+StuADO.Recordset("
XH"
)+"
StuKCADO.Refresh
注:
为了方便控件显示学生性别,这里建立了一个表CXB(XBbit,XBMvarchar(4))存放数据1,男;
0,女,这样把要显示的表与其连接便可以显示中文的性别,如有类似情况可参照此方法。
6.学生信息修改
目的与要求:
了解对数据库操作的基本方法(增、删、改)。
程序界面:
图6.1
用户可以点击下面的表格,用户资料便反映到上面的控件中去,这时可以修改控件中的信息,点击更新实现修改。
如输入一个新的学号点击更新实现记录的添加当选中当前记录点删除时则可以删除此学生记录,双击照片可以选择学生照片,用于更新学生照片信息。
(1)在窗体上放入ADODC、DataGrid并起名为StuADO,StuDG。
(2)设置StuADO的ConnectionString属性为
(3)置StuADO的RecordSource属性为
(4)置StuDG的DataSource属性为StuADO。
(5)在窗体上放入Image控件并起名为StuPic,用来显示学生照片,选择Image控件的DataSource属性为StuADO,设置DataField属性为ZP,这就完成了Image控件和数据库的绑定,记录集移动时Image里面会显示当前学生的照片。
(6)并在窗体上放入如图所需控件。
实现过程:
当点击DataGrid中的记录时记录集游标也跟着移动,在StuADO_MoveComplete事件中取出本条记录显示在上面的控件中,我们可以在控件中修改学生信息,双击选择学生照片,按更新调用StuUpd_Click更新到数据库中,当输入新的学生记录时按更新调用StuUpd_Click添加到数据库中,也可以按删除调用StuDel_Click函数删除此记录,系统会调用CheckXs触发器来保持数据的参照完整性。
General中定义的全局变量
PrivateFileNameAsString
PrivateSqlResAsNewADODB.Recordset
Form加载时打开数据库连接
PrivateSubForm_Load()
SqlCon.Provider="
SqlCon.Open
Form卸载时关闭数据库连接
PrivateSubForm_Unload(CancelAsInteger)
SqlCon.Close
学生信息记录集记录指针移动完成事件,当点击StuADO控件记录移动图标时产生,在这个过程中取出当前记录中的学生信息,更新到学号、姓名等显示控件中去,实现显示和StuADO控件记录移动连动
PrivateSubStuADO_MoveComplete(ByValadReasonAsADODB.EventReasonEnum,ByValpErrorAsADODB.Error,adStatusAsADODB.EventStatusEnum,ByValpRecordsetAsADODB.Recordset)
IfNotpRecordset.EOFAndNotpRecordset.BOFThen
StuXH.Text=pRecordset("
)
StuXM.Text=pRecordset("
XM"
StuCSSJ.Text=pRecordset("
CSSJ"
StuZY.Text=pRecordset("
ZY"
StuZXF.Text=pRecordset("
ZXF"
StuBZ.Text=CStr(pRecordset("
BZ"
)&
IfpRecordset("
XB"
)=0Then
StuXBF.Value=True
Else
StuXBM.Value=True
“删除”Click事件处理,从StuADO记录集中取出当前记录的学号,然后通过commad对象执行delete语句来删除当前的学生记录,delete语句的调用会引起CheckXs触发器的动作
PrivateSubStuDel_Click(IndexAsInteger)
Ret=MsgBox("
是否要删除"
)+
"
号学生的记录!
vbYesNo,"
提示"
IfRet=vbYesThen
SqlCmd.ActiveConnection=SqlCon
SqlCmd.CommandText=
"
deletefromXSwhereXH='
SqlCmd.Execute
StuADO.RecordSource="
select*fromXS,CXBwhereXS.XB=CXB.XB"
StuADO.Refresh
“照片”DoubleClick事件的处理,打开对话框,给用户选择照片,并显示在StuPic控件中,同时记录下选择的文件名和路径到全局FileName变量中,给后面的更新学生信息使用
PrivateSubStuPic_DblClick()
显示打开文件的公用对话框,选择需要加入数据库的图片
CDlg.Filter="
位图(*.bmp)|*.bmp|图像(*.jpg)|*.jpg"
CDlg.ShowOpen
FileName=CDlg.FileName
StuPic.Picture=LoadPicture(FileName)'
预览图片
EndSub
读取照片数据的函数,根据输入的照片的文件名,打开文件读入照片数据到数组中,然后通过AppendChunk函数把照片数据写入到Field对象中去
PrivateSubPicSaveToDB(ByRefFldAsADODB.Field,DiskFileAsString)
‘保存到图片到ADODB.Field对象中去
ConstBLOCKSIZE=4096
DimbyteData()AsByte'
定义数据块数组
DimNumBlocksAsLong'
定义数据块个数
DimFileLengthAsLong'
标识文件长度
DimLeftOverAsLong'
定义剩余字节长度
DimSourceFileAsLong'
定义自由文件号
DimiAsLong'
定义循环变量
SourceFile=FreeFile'
提供一个尚未使用的文件号
OpenDiskFileForBinaryAccessReadAsSourceFile'
打开文件
FileLength=LOF(SourceFile)'
得到文件长度
IfFileLength=0Then'
判断文件是否存在
CloseSourceFile
MsgBoxDisk
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 设计 学生 成绩管理系统
![提示](https://static.bingdoc.com/images/bang_tan.gif)