oracle设计报告.docx
《oracle设计报告.docx》由会员分享,可在线阅读,更多相关《oracle设计报告.docx(24页珍藏版)》请在冰豆网上搜索。
oracle设计报告
贵州师范大学职业技术学院
O
R
A
C
L
E
数
据
库
设
计
报
告
题目:
VB/ORACLE学生成绩管理系统
姓名:
杨茂科
班级:
08计应
指导老师:
赵进宏老师
实习地点:
实验楼一机房
实习时间:
2010年12月20日——2010年12月31日
前言
Oracle是目前最流行的关系型数据库管理系统,广泛应用于管理信息系统、企业数据处理、Internet、电子商务网站等领域。
此前流行的版本为Oracle9i。
Oracle公司在Oracle的基础上,推出了代表数据库最新技术的数据库系统Oracle10g。
本次Oracle数据库设计报告分为四章:
第一章:
主要内容包括我们做VB/ORACLE学生成绩管理系统的主要功能介绍,在vb运行情况下各个功能界面的介绍。
第二章:
主要内容有VB/ORACLE学生成绩管理系统中数据库的设计。
该数据库主要是用DBCA向导来完成创建,该部分包括各个创建界面的截图,方面读者进行阅读;该数据库中关系表的建立主要是通过登录SQLPlus,运用创建表的代码进行数据库中关联三张表的创建,该部分在报告中有详细的代码与注释;VB/ORACLE学生成绩管理系统中最主要的部分为数据源的创建也在该章进行详细的说明。
第三章:
主要内容是VB/ORACLE学生成绩管理系统的主要代码。
包括系统各个功能界面的运行代码,保证系统的完整性。
第四章:
内容为在完成这次VB/ORACLE学生成绩管理系统设计中的总结。
我相信通过这次的VB/ORACLE学生成绩管理系统设计报告是书写,让没有学过Oracle的读者也能很好的理解这当中的关系,让学过的读者就能够很好并且很容易的读懂该报告。
可读性与完整性是设计报告的关键,希望这篇报告能够让读者可读。
目录
第一章系统简介1
一功能简介1
二功能界面1
1、主界面:
1
2、学生信息查询界面1
3、学生信息修改2
4、学生成绩录入2
第二章数据库设计3
一创建数据库3
二创建表5
1、学生表的创建5
2、课程表创建5
3、选课关系表创建6
三数据源创建6
第三章VB设计7
一、建立连接字符串7
二、模板代码7
三、主界面功能代码8
四、学生信息查询功能代码10
五、学生选课信息界面代码11
六、学生创建录入功能代码11
第四章总结16
附录17
第一章系统简介
一功能简介
用VB实现简单的学生成绩管理系统,使用可视化ADODC控件和ADODB对象访问后台oracle数据库服务器。
系统包含学生信息的查询;学生信息的录入、修改、删除;学生成绩的录入、修改、删除等功能。
二功能界面
1、主界面:
系统功能的导航作用,单击个功能按钮进入相应的操作界面。
如图1-1所示:
图1-1主界面
2、学生信息查询界面
可以满足简单条件的查询,在查询的结果中选择一行,双击可以查看该学生的具体选课信息
如图1-2、1-3所示:
图1-2学生信息查询界面
图1-3学生选课成绩情况界面
3、学生信息修改
完成学生信息的增加、删除、修改等操作如图1-4所示:
图1-4学生信息修改界面
4、学生成绩录入
完成各专业同学成绩的录入如图1-5所示:
图1-5学生成绩录入界面
第二章数据库设计
一创建数据库
利用oracle的数据库管理助手(DBCA)向导来完成名为yangmaoke数据库的创建
如图2-1所示:
图2-1数据库标识
利用oracle的数据库管理助手(DBCA)向导来完成密码为123的数据库身份验证
如图2-2所示:
图2-2数据库身份验证
数据库完成状态如图2-3、2-4所示:
图2-3数据库创建完成状态
图2-4数据库创建完成
二创建表
通过以system的身份登录oracle的数据库的SQLplus进行数据库实例yangmaoke中表的创建
如图2-5所示:
图2-5登录数据库实例yangmaoke
1、学生表的创建
在SQLplus中执行以下代码完成学生表的创建:
createtables(
XHvarchar2(12)primarykey,--学号
XMchar(8)notnull,--姓名
XBchar
(2)null,--性别
CSRQdatenull,--出生日期
ZYMvarchar2(20)null,--专业名
ZXFchar(3)null,--总学分
BZvarchar2(200)null--备注
);
在学生表中插入两条记录代码如下:
insertintos(XH,XM,XB,CSRQ,ZYM,ZXF,BZ)
values('082113010053','杨茂科','男',to_date('1989-01-02','yyyy-mm-dd'),'计算机应用技术','54','三好学生');
insertintos(XH,XM,XB,CSRQ,ZYM,ZXF,BZ)
values('082113010054','万波','男',to_date('1989-02-05','yyyy-mm-dd'),'通信','54','三好学生');
2、课程表创建
在SQLplus中执行以下代码完成课程表的创建:
createtablec(
KCHchar(3)primarykey,--课程号
KCMchar(16)notnull,--课程名
KKXQNumber
(1)notnull,--开课学期
XSNumber
(2)default1notnull,--学时
XFNumber
(1)null--学分
);
在课程表中插入两条记录代码如下:
insertintoc(KCH,KCM,KKXQ,XS,XF)
values('01','计算机基础',1,80,5);
insertintoc(KCH,KCM,KKXQ,XS,XF)
values('02','程序设计语言',2,68,4);
3、选课关系表创建
在SQLplus中执行以下代码完成选课关系表的创建:
createtables_c(
XHvarchar2(12)notnull,--学号
KCHchar(3)notnull,--课程号
CJNumber
(2)null,--成绩
XFNumber
(1)null--学分
);
在选课关系表中插入两条记录代码如下:
insertintos_c(XH,KCH,CJ,XF)
values('082113010053','01',80,3);
insertintos_c(XH,KCH,CJ,XF)
values('082113010054','02',78,3);
三数据源创建
在电脑的开始——控制面板——管理工具——数据源——系统DSN为数据库实例添加一个名为ymk的数据源如图2-6所示:
图2-6建立数据源
第三章VB设计
一、建立连接字符串
如图3-1所示:
图3-1数据链接属性设置
二、模板代码
PublicconnAsNewADODB.Connection
PublicrecoAsNewADODB.Recordset
PublicRsAsNewADODB.Recordset
PublicstrAsString
PublicSubMain()
Frm_main.Show
EndSub
PublicSubOpenDB()
Ifconn.State=1Then
conn.Close
EndIf
conn.Open"Provider=MSDAORA.1;Password=123;UserID=system;
DataSource=yangmaok;PersistSecurityInfo=True"
EndSub
PublicSubClose_Reco()
Ifreco.State=1Then
reco.Close
EndIf
EndSub
三、主界面功能代码
DimSqlStrAsString
PublicSubMakeSqlStr()
SqlStr=""
IfTrim(Txt_xh.Text)<>""Then
SqlStr="XHlike'%"+Trim(Txt_xh.Text)+"%"&"'"
EndIf
IfTrim(Txt_xm.Text)<>""AndSqlStr<>""Then
SqlStr=SqlStr+"andXMlike'%"+Trim(Txt_xm.Text)+"%"&"'"
Else
IfTrim(Txt_xm.Text)<>""Then
SqlStr=SqlStr+"XMlike'%"+Trim(Txt_xm.Text)+"%"&"'"
EndIf:
EndIf
IfTrim(Combo_zy.Text)<>"所有专业"AndSqlStr<>""Then
SqlStr=SqlStr+"andZYMlike'%"+Trim(Combo_zy.Text)+"%"&"'"
Else
IfTrim(Combo_zy.Text)<>"所有专业"Then
SqlStr=SqlStr+"ZYMlike'%"+Trim(Combo_zy.Text)+"%"&"'"
EndIf:
EndIf
EndSub
PrivateSubCmd_search_Click()
OnErrorResumeNext
MakeSqlStr
IfSqlStr<>""Then
Adodc1.RecordSource="select*fromswhere"&SqlStr
EndIf
Adodc1.Refresh
EndSub
PrivateSubCombo_zy_Click()
MakeSqlStr
Adodc1.RecordSource="select*fromswhere"&SqlStr&"andZYM='"+Trim(Combo_zy.Text)+"'"
Adodc1.Refresh
EndSub
PrivateSubDataGrid1_DblClick()
xkgx.Adodc1.RecordSource="select*froms,c,s_cwheres.XH=s_c.XHandc.KCH=s_c.KCHands.XH='"+Adodc1.Recordset("XH")+"'"
xkgx.Adodc1.Refresh
Me.Hide
xkgx.Show
EndSub
PrivateSubForm_Load()
OpenDB
reco.Open"selectdistinctZYMfroms",conn,1,3
DoWhileNotreco.EOF
Combo_zy.AddItem(reco("ZYM"))
reco.MoveNext
Loop
EndSub
PrivateSubForm_Unload(CancelAsInteger)
mainjm.Show
EndSub
四、学生信息查询功能代码
DimSqlStrAsString
PublicSubMakeSqlStr()
SqlStr=""
IfTrim(Txt_xh.Text)<>""Then
SqlStr="XHlike'%"+Trim(Txt_xh.Text)+"%"&"'"
EndIf
IfTrim(Txt_xm.Text)<>""AndSqlStr<>""Then
SqlStr=SqlStr+"andXMlike'%"+Trim(Txt_xm.Text)+"%"&"'"
Else
IfTrim(Txt_xm.Text)<>""Then
SqlStr=SqlStr+"XMlike'%"+Trim(Txt_xm.Text)+"%"&"'"
EndIf:
EndIf
IfTrim(Combo_zy.Text)<>"所有专业"AndSqlStr<>""Then
SqlStr=SqlStr+"andZYMlike'%"+Trim(Combo_zy.Text)+"%"&"'"
Else
IfTrim(Combo_zy.Text)<>"所有专业"Then
SqlStr=SqlStr+"ZYMlike'%"+Trim(Combo_zy.Text)+"%"&"'"
EndIf:
EndIf
EndSub
PrivateSubCmd_search_Click()
OnErrorResumeNext
MakeSqlStr
IfSqlStr<>""Then
Adodc1.RecordSource="select*fromswhere"&SqlStr
EndIf
Adodc1.Refresh
EndSub
PrivateSubCombo_zy_Click()
MakeSqlStr
Adodc1.RecordSource="select*fromswhere"&SqlStr&"andZYM='"+Trim(Combo_zy.Text)+"'"
Adodc1.Refresh
EndSub
PrivateSubDataGrid1_DblClick()
xkgx.Adodc1.RecordSource="select*froms,c,s_cwheres.XH=s_c.XHandc.KCH=s_c.KCHands.XH='"+Adodc1.Recordset("XH")+"'"
xkgx.Adodc1.Refresh
Me.Hide
xkgx.Show
EndSub
PrivateSubForm_Load()
OpenDB
reco.Open"selectdistinctZYMfroms",conn,1,3
DoWhileNotreco.EOF
Combo_zy.AddItem(reco("ZYM"))
reco.MoveNext
Loop
EndSub
PrivateSubForm_Unload(CancelAsInteger)
mainjm.Show
EndSub
五、学生选课信息界面代码
PrivateSubForm_Unload(CancelAsInteger)
chaxun.Show
EndSub
六、学生创建录入功能代码
PrivateSqlCmdAsNewADODB.Command
Dimaaa
PrivateSubComboKCM_Click()
DimStXH,StKCM
DimNKCH
Dimcount
count=0
Close_Reco
reco.Open"selectKCHfromcwhereKCM='"+Trim(ComboKCM.Text)+"'",conn,1,3
NKCH=reco("KCH")
aaa=NKCH
Close_Reco
reco.Open"selectcount(*)asSUMfroms_cwhereXH='"+Trim(ComboXH.Text)+"'andKCH='"+NKCH+"'",conn,1,3
count=reco("SUM")
Ifcount=0Then
Close_Reco
reco.Open"selectXH,XMfromswhereXH='"+Trim(ComboXH.Text)+"'",conn,1,3
Else
Close_Reco
reco.Open"selects.XH,s.XM,s_c.CJ,s_c.XFfroms,c,s_cwheres.XH='"+Trim(ComboXH.Text)+"'andc.KCH='"+NKCH+"'ands.XH=s_c.XHandc.KCH=s_c.KCH",conn,1,3
EndIf
ComboXH.Text=reco("XH")
WhileNotreco.EOF
Ifreco.Fields.count=2Then
TxtXM.Text=reco("XM")
TxtCJ.Text=""
TxtXF.Text=""
Else
TxtXM.Text=reco("XM")
TxtCJ.Text=reco("CJ")
TxtXF.Text=CStr(reco("XF")&"")
EndIf
reco.MoveNext
Wend
EndSub
PrivateSubComboXH_Click()
DimStXH,StKCM
DimNKCH
Dimcount
count=0
SqlCmd.CommandText="selectKCHfromcwhereKCM='"+Trim(ComboKCM.Text)+"'"
Setreco=SqlCmd.Execute
NKCH=reco("KCH")
SqlCmd.CommandText="selectcount(*)asSUMfroms_cwhereXH='"+Trim(ComboXH.Text)+"'andKCH='"+NKCH+"'"
Setreco=SqlCmd.Execute
count=reco("SUM")
Ifcount=0Then
SqlCmd.CommandText="selectXH,XMfromswhereXH='"+Trim(ComboXH.Text)+"'"
Else
SqlCmd.CommandText="selects.XH,s.XM,CJ,s_c.XFfroms,c,s_cwheres.XH='"+Trim(ComboXH.Text)+"'andc.KCH='"+NKCH+"'ands.XH=s_c.XHandc.KCH=s_c.KCH"
EndIf
Setreco=SqlCmd.Execute
WhileNotreco.EOF
Ifreco.Fields.count=2Then
TxtXM.Text=reco("XM")
TxtCJ.Text=""
TxtXF.Text=""
Else
TxtXM.Text=reco("XM")
TxtCJ.Text=reco("CJ")
TxtXF.Text=CStr(reco("XF"&""))
EndIf
reco.MoveNext
Wend
EndSub
PrivateSubComboZY_Click()
ComboXH.Clear
Close_Reco
reco.Open"select*fromswhereZYM='"+Trim(ComboZY.Text)+"'",conn,1,3
ComboXH.Text=reco("XH")
WhileNotreco.EOF
ComboXH.AddItem(Trim(reco("XH")))
reco.MoveNext
Wend
ComboXH_Click
EndSub
PrivateSubCommand1_Click()
DimStXH,StKCM,StCJ,StXF
IfTrim(TxtCJ.Text)=""OrTrim(TxtXF.Text)=""Then
MsgBox"输入完整的信息!
",,"提示:
"
ExitSub
EndIf
conn.Execute"insertintos_cvalues('"+Trim(ComboXH.Text)+"','"+aaa+"','"+Trim(TxtCJ.Text)+"','"+Trim(TxtXF.Text)+"')"
Adodc1.RecordSource="selects.XH,XM,ZYM,c.KCH,KCM,CJ,s_c.XFasXFfroms,c,s_cwheres.XH=s_c.XHandc.KCH=s_c.KCHorderbyXH"
Adodc1.Refresh
EndSub
PrivateSubCommand2_Click()
ret=MsgBox("是否要删除"+ComboXH.Text+"学号的"+Trim(ComboKCM.Text)+"课的成绩记录?
",vbYesNo,"提示:
")
Ifret=vbYesThen
conn.Execute"deletefroms_cwhereXH='"+ComboXH.Text+"'andKCH='"+aaa+"'"
Adodc1.RecordSource="selects.XH,XM,ZYM,c.KCH,KCM,CJ,s_c.XFasXFfroms,c,s_cwheres.XH=s_c.XHandc.KCH=s_c.KCHorderbyXH"
Adodc1.Refresh
MsgBox"删除成功!
",,"提示:
"
EndIf
EndSub
PrivateSubCommand3_Click()
UnloadMe
EndSub
PrivateSubDataGrid1_RowColChange(LastRowAs