数据库课程设计Word文档格式.docx
- 文档编号:20263449
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:26
- 大小:426.36KB
数据库课程设计Word文档格式.docx
《数据库课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
5.各实体分别转换为一个关系模式
因此由上一步E-R图可得到学生信息管理系统的关系模型为:
专业(专业编号,专业名称,系别)
学生(学号,姓名,性别,出生日期,系别,专业)
课程(课号,课程名称,学分,学时,先修课程,开课学期)
选修(学号,姓名,课号,课程名称,成绩)
用户(自增长ID,用户名,密码,权限角色)
七、数据库的实施
1.数据库的建立:
在SQL2005中建立学生信息管理系统的数据库‘学生信息管理系统’
2.新建数据库表
主要实现代码:
createtableStudent(
Snochar(12)primarykey,
Snamevarchar(10)notnullunique,
Ssexchar
(2),
Sbirthdaydatetime,
Sdeptchar(4),
Mnochar(6)
);
createtableCourse(
Cnochar(8)primarykey,
Cnamevarchar(40)notnullunique,
Cponchar(8),
Csreditnumeric(3,1),
Choursmallint,
Ctermsmallint,
Foreignkey(Cpon)referencesCourse(Cno)
createtableSC(
Snochar(12),
Cnochar(8),
Gradenumeric(3,1),
primarykey(Sno,Cno),
foreignkey(Sno)referencesStudent(Sno),
foreignkey(Cno)referencesCourse(Cno)
createtableMajor(
Mnochar(6)primarykey,
Mnamevarchar(40)notnullunique,
Sdeptchar(4)
createtableUsers(
idintidentityprimarykey,
usernamevarchar(10)notnullunique,
userpwdvarchar(200),
rolevarchar(10)notnull
3.建立学生成绩视图:
createviewV_StudentCourseGrade
as
selectStudent.*,Major.Mname,Course.Cno,Course.Cname,SC.Grade
fromStudentleftouterjoinSConSC.Sno=Student.Sno
leftouterjoinCourseonSC.Cno=Course.Cno
leftouterjoinMajoronStudent.Mno=Major.Mno
八、使用VB6.0连接SQLSever2005数据库
(1)定义系统中的全局变量
PublicSqlConnAsNewADODB.Connection
PublicSqlRSAsNewADODB.Recordset
PublicSqlCmdAsNewADODB.Command
(2)连接数据库
PublicFunctionDBConn()AsBoolean
Connstr=“Provider=SQLOLEDB.1;
DataSource=.\SQLEXPRESS;
UserID=sa;
Password=12345678;
IniyialCatalog=StudentDB”
IfSqlConn.State<
>
adStateOpenThen
‘SqlConn.ConnectionString=ConnStr
‘SqlConn.Open
SqlConn.OpenConnStr
EndIf
SqlCmd.ActiveConnection=SqlConn
DBConn=Ture
EndFunction
(3)执行SQL语句的函数ExecSQL,可返回结果集,也可以使用没有返回结果集的SQL命令语句。
PublicFunctionExecSQL(ByValsqlAsString)AsADODB.Recordset
DBConn
SqlCmd.CommandText=sql
SetExecSQL=SqlCmd.Execute
九、学生信息管理系统的实现
1.登录窗口
(1)登录系统按钮“确定”
PrivateSubcmdOK_Click()
DimsUserNameAsString
DimsUserPwdAsString
sUserName=Yrim(txtUserName.text)
sUserPwd=Trim(txtUserPwd.Text)
IfsUserName=“”Then
CallMagBox(“请输入用户名!
”,vbOKOnly,“登录提示”)
txtUserName.SetFocus
ExitSub
adStateOpenThenDBConn
SetSqlRS=ExecSQL(“selectcount(*)numfromUserwhere(username=‘“+sUserName+”’)and(userpwd=‘“+sUserPwd+”’)”)
IfNotSqlRS.EOFThen
IfInt(Trim(SqlRS(“num”)))>
=1Then
SqlRS.Close
SetSqlRS=ExecSQL(“selectusername,rolefromUserwhere(username=’“+sUserName+”’)and(userpwd=’“+sUserPwd+”’)”)
MDIForml.SetRightForRole(Trim(SqlRS(“role”)))
Else
MDIForml.SetRightForRole(“2”)
UnIoadMe
MDIForml.Show
CallMsgBox(“用户名或密码错误,请重新登录!
EndSub
(2)退出关闭按钮“关闭”
PrivateSubcmdClose_Click()
UnloadMe
EndSub
2.系统界面设计
菜单栏中选择各个子菜单后出发的时间如下所示:
PrivateSubAddStudent_Click()’学生信息录入
frmStudentInfo.SetOpenStyle(“I”)
frmStudentInfo.Show
frmStudentInfo.ZOrder0
PrivateSubUpdataStudent_Click()’学生信息更新
frmStudentInfo.SetOpenStyle(“U”)
PrivateSubSearchStudent_Click()’学生信息查询
frmStudentInfo.SetOpenStyle(“F”)
PrivateSubAddGrade_Click()’学生成绩录入
frmCourseGrade.Show
frmCourseGrade.ZOrder0
PrivateSubGradeSearch_Click()’学生成绩查询
frmGradeSearch.Show
frmGradeSearch.ZOrder0
PublicSubSetRightForRole(roleAsString)
Ifrole=“2”Then
UpdataStudent.Visible=False
AddGrade.Visible=False
GradeSummary.Visible=False
UserManage.Visible=False
PrivateSubexitSys_Click()’退出系统
3.学生信息的录入,更新,查询
(1)定义执行过程中需要的全局变量
DimstrModeAsString’窗口打开方式
DimstrNoAsString’学生学号
(2)窗口加载时执行代码,完成专业下拉列表框赋值
PrivateSubForm_Load()
SetSqlRS=ExecSQL(“selectMnameformMajororderbyMno”)
WhileNotSqlRS.EOF
cbxMajor.AddItem(SqlRS(“Mname”))
SqlRS.MoveNext
Wend
(3)单击“新增”按钮时触发的事件
PrivateSubcmdNew_Click()’新增
txtSno.Enabled=Ture
txtSname.Enabled=Ture
Male.Enabled=Ture
Female.Enabled=Ture
txtBirthday.Enabled=Ture
txtDept.Enabled=Ture
cbxMajor.Enabled=Ture
txtSno.Text=“”
txtSname.Text=“”
Male.Value=False
Female.Value=False
txtBirthday.Text=“”
txtDept.Text=“”
cbxMajor.Text=“”
txtSno.SetFocus
(4)单击“保存”按钮时触发的事件
PrivateSubcmdSave_Click()’保存
DimstrSQLAsString
DimstrSexAsString
DimstrMnoAsString
IfTrim(txtSno.Text)=“”Then
CallMsgBox(“请输入学生学号!
”,vbOKOnly,“提示”)
IfTrim(txtSname.Text)=“”Then
txtSname.SetFocus
CallMsgBox(“请输入学生姓名!
IfMale.value=TureThen
strSex=“男”
ElseIfFemale.Value=TureThen
strSex=“女”
EndIf
SetSqlRS=ExecSQL(“selectMnofromMajorwhereMname=‘”+Trim(cbxMajor.Text)+“’”)
IfNotSqlRS.EOFThen
strMno=Trim(SqlRS(“Mno”))
strMno=“”
IfstrMode=“I”Then
SetSqlRS=ExecSQL(“selectcount(*)numfromStudentwhereSno=‘”+Trim(txtSno.Text)+“’”)
=1Then
CallMagBox(“该学生”+Trim(txtSno.Text)+“已经存在,请检查!
ExitSub
strSQL=“INSERTINTOStudent(Sno,Sname,Ssex,Sbirthday,Sdept,Mno)”
strSQL=strSQL+“VALUES(‘“+Trim(txtSno.Text)+“’,’”+Trim(txtSname.Text)+“’,’”+strSex+strSex+“’,’”+Trim(txtBirthday.Text)+“’,’”+Trim(txtDept.Text)+“’,’”+strMno+”’)”
ElseIfstrMode=“U”Then
strSQL=“UPDATAStudentSETSno=‘“+Trim(txtSno.Text)+”’,Sname=‘“+Trim(txtSname.Text)+”’,”
strSQL=strSQL+“Ssex=‘“+strSex+”’,Sbirthday=‘“+Trim(txtBirthday.Text)+”’,Sdept=‘“+Trim(txtDept.Text)+”’,Mno=’“+strMno+”’”
strSQL=strSQL+“whereSno=‘“+strNo+”’”
ExecSQL(strSQL)
CallMsgbox(“保存成功!
IfstrMode=“I”ThencmdNew_click
(1)更新实现代码如下:
PublicSubSetOpenStyle(strAsString)
strMode=str
cmdNew.Enabled=False
cmdFind.Enabled=False
cmdChang.Enabled=False
cmdDelete.Enabled=False
cmdSave.Enabled=False
Male.Enabled=False
Female.Enabled=False
txtBirthday.Enabled=False
txtDept.Enabled=False
cbxMajor.Enabled=False
Ifstr=“F”Then
cmdFind.Enabled=Ture
ElseIfstr=“I”Then
cmdNew.Enabled=Ture
cmdSave.Enabled=Ture
txtSno.Enabled=False
txtSname.Enabled=False
ElseIfstr=“U”Then
cmdFind.Enable=Ture
(2)单击“查询”按钮时触发的事件
PrivateSubcmdFind_Click()’查询
strNo=Trim(txtSno.Text)
IfTrim(txtSno.Text)=“”AndTrim(txtSname.Text)=””Then
CallMsgBox(“请输入学生学号或姓名!
”,vbOKOnly,”提示”)
SetSqlRS=ExecSQL(“selectStudent,*,Major.MnamefromStudentleftouterjoinMajoron
Student.Mno=Major.MnowhereStudent.Sno=‘”+Trim(txtSno.Text)+”’orStudent.Sname=‘”+Trim(txtSname.Text)+”’”)
txtSno.Text=Trim(SqlRS(“Sno”))
strNo=Trim(SqlRS(“Sno”))
txtSname.Text=Trim(SqlRS(“Sname”))
IfSqlRs(“Ssex”)=“男”Then
Male.Value=Ture
ElseIfSqlRS(“Ssex”)=“女”Then
Female.Value=Ture
txtBirthday.Text=SqlRS(“Sbirthday”)
txtDept.Text=Trim(SqlRS(“Sdept”))
IfSqlRS(“Mname”)<
””ThencbxMajor.Text=Trim(SqlRS(“Mname”))
CallMsgBox(“没有此学生信息!
”,vbOKOnly,”提示”)
IfstrMode=“U”Then
cmdChang.Enabled=Ture
cmdDelete.Enabled=Ture
(3)单击“修改”按钮时触发的事件
PrivateSubcmdChang_Click()’更新
(4)单击“删除”按钮时出发的事件
PrivateSubcmdDelete_Click()’删除
IfvbYes=MsgBox(“是否确认删除学号:
””+strNo+””的学生信息?
”,vbYesNo,”询问”)Then
SqlConn.BeginTrans
SqlCmd.CommandText=“deletefromSCwhereSno=‘”+strNo+“’”
SqlCmd.Execute
SqlConn.CommitTrans
txtSno.Text=“”
txtSname.Text=“”
txtBirthday.Text=“”
txtDept.Text=“”
cbxMajor.Text=“”
4.学生成绩的录入
(1)窗口加载时执行代码,完成专业和课程名下拉列表框赋值
PrivateSubForm_Load()
SetSqlRS=ExecSQL(“selectMnamefromMajororderbyMno”)
cbxMajor.AddItem(SqlRS(“Mname”))
SetSqlRS=ExecSQL(“selectCnamefromCourseorderbyCno”)
cbxCourse.AddItem(SqlRS(“Cname”))
SqlRs.MoveNext
PrivateSubcmdFind_Click()
DimstrSQL,sTmpAsString
DimstrSno,sSnoAsString
DimstrSname,sSnameAsString
DimstrMname,sMnameAsString
strSno=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计