资源描述
计算机科学与技术专业数据库课程设计 华科学院计算机科学与技术专业 数据库课程设计报告 (2007/2008学年 第一学期)学生姓名: 学生班级: 学生学号: 指导教师: 2007年12月29日目录第一章 学生成绩管理系统概述31.1 开发背景及意义31.2 运行环境3第二章 需求分析42.1 可行性分析41设计思想42技术可行性43环境可行性42.2 系统需求41功能需求42性能要求52.3 数据流程图52.4 数据字典6第三章 概念结构设计83.1 实体E-R图83.2 实体之间关系E-R图93.3 课程管理模块设计113.4 学生资料管理模块11第四章 逻辑结构设计13第五章 物理设计及实施155.1 系统数据库设计155.2 相关模块数据库设计15第六章 系统设计及主要界面介绍176.各主要界面介绍176.1 登陆界面176.2 系统主要界面176.2编码实现:226.1 连接数据库及网络函数申明226.2 登陆界面实现246.3 主界面代码如下256. 成绩录入界面代码296. 成绩修改界面326. 成绩查询366. 用户注册39附录 使用说明42附录2 Db_score.sql 内容42参考文献48第一章 学生成绩管理系统概述1.1 开发背景及意义在教育普及日趋完善的今天,一个学校拥有上万人已经很普遍,上万个学生的数据汇集在一起,对学校信息的管理者而言其工作的庞杂和繁琐程度是相当巨大的,如果只靠人工管理往往为了改一条数据就要翻查所有相关的资料,不仅容易产生错误,而且造成时间和人力很大的浪费,在网络普及的今天,无纸化办公已经成为一种新的趋势,在极短的时间内让学校变成无纸化办公的场所是不现实的,但我们可以一步一步向这个方向发展。经过仔细分析以后,学校的学生成绩管理是学校庞大数据中的一角,编写个学生成绩管理系统来关学生的成绩有很大的意义。1、 主要方便教师对学生成绩的管理:教师只需坐在计算机前即可完成对学生成绩、课程及学生资料的管理,不用在各个办公室来回取送文件了。2、 减少数据出错:人工对数据的管理产生错误是无法避免的,一旦产生错误,更正起来十分困难,使用本系统后可以减少出错的几率,修改错误也十分方便。3、 节约资源:系统普及后可以节约大量用来纪录学生信息的纸张,可以减少以用来管理学生的人手,节约了物质资源和人力资源,从而节约了学校的开支。1.2 运行环境1、装有WIN98以上的操作系统的个人电脑2、安装Access或 SQL Server其中一种数据库。第二章 需求分析2.1 可行性分析1设计思想当今社会的信息流量越来越大,信息交流的效率显得尤为重要。无纸化办公已经成为社会各工作场所必须具备的条件了。一个有用几千人乃至上万人的学校,要对每个学生的资料、成绩、课程等数据进行管理,其信息量很大,如果通过人工管理的话将是一项十分巨大的工作,而且容易出错。我们设计了这套系统为了能让教师更轻松地对学生的成绩、课程、学生资料进行管理,查询成绩,将大大简化学生资料、成绩和课程的添加、修改、查询等管理的手续和时间,从而减轻了教师的工作负担和繁琐。2技术可行性C/S 模式的客户端需要安本装软件通过对数据库的访问就可以得到所需信息,比其他方式更容易管理,符合使用者对使用系统的要求。为我们提供了系统设计的基本思想,为我们提供了系统设计的基本方向。3环境可行性 现在学校教师已经普遍配有计算机,而且采用的是C/S模式,不需要为客户安装什么特殊的软件,甚至不要求计算机能上网的要求。2.2 系统需求1功能需求整个系统共划分为学生成绩管理、学生资料管理、课程管理、登陆信息管理和用户管理五大模块,其中课程管理模块提供用户对课程的基本管理功能,包括课程的添加、修改、删除和浏览。学生资料管理模块提供用户对学生资料的基本管理功能,包括学生资料的添加、修改、删除和查询。系统功能层次图如图2-1所示。成绩管理系统学生资料管理用户管理登陆信息管理课程管理学生成绩管理图 2.1系统功能层次图2性能要求所开发的系统能在安装有WIN98以后的系统上正常运行,数据库文件的查询修改所需响应时间不能大于10秒。要求系统能对数据库信息的基本保密,并对超级管理员提供对数据库的直接修改功能,对不同的对象提供不同的权限资格,让使用者不能越权修改资料,并且要求数据的唯一,不能产生数据重复输入的情况。对于源代码能保密,出现问题后能及时的做出相应的调整。要求客户机上有安装Access或 SQL Server等数据库。2.3 数据流程图 如下图2.2所示图 2.2 数据流程图2.4 数据字典数据字典是关于数据的信息集合,也就是对数据流图中包含的所有元素的定义的集合。数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息。本软件的相关数据字典如表2-1下:表2-1 数据字典名字:学生信息记录别名:描述:描述学生的具体信息的信息表定义:学生信息记录 = 学号 + 姓名 + 性别 + 年龄 + 班级 位置:登陆用户信息表(tb_login)学生信息表(tb_stuInfo)名字:教师注册表别名:系统登陆用户信息描述:教师注册为本系统的合法用户时,所提供给用户的信息。定义:教师注册表 = 系统ID + 教师号 + 姓名 + 性别 + 院系位置:登陆用户信息表(tb_login)教师信息表(tb_teacherInfo)名字:课程安排表记录别名:描述:记录课程安排的信息表定义:课程安排表记录 = 科目号 + 科目名 + 上课时间+上课地点位置:课程安排表(tb_claInfo)数据项描述:系统ID = 教师登陆用户名 | 管理员登陆用户名 | 学生登陆用户名教师登陆用户名 = 0字母或数字12管理员登陆用户名 = 0字母或数字12学生登陆用户名 = 学号学号 = 12数字字符12第三章 概念结构设计3.1 实体E-R图E-R图(Entity-Relationship Diagran)是用来描述现实世界的概念模型。本系统的主要E-R图3.1 图3.6所示:管理员姓名性别系统ID图3.1 管理员实体E-R图教师教师号姓名性别系统ID图3.2 教师实体E-R图姓名学号性别年龄班级学生图3.3 学生教师实体E-R图姓名学号课程名表号班级成绩图3.4 成绩实体E-R图课程课程号课程名图3.5 课程实体E-R图院系籍贯入学时间专业班级学生资料政治面貌最高学历图3.6 学生资料实体E-R图3.2 实体之间关系E-R图图 3.7实体之间关系E-R图PS:管理员和学生、教师之间是管理的关系,由管理员管理学生和教师的权限。管理员具有最高权利,并管理课程安排;也可以对学生资料和学生成绩进行管理。教师和成绩、学生资料之间是管理的关系,由教师对成绩、学生资料的添加、删除、修改等功能进行管理;与课程是查询关系,教师只能查询课程安排。学生和课程、成绩、学生资料之间是查询的关系,学生在课程、成绩、学生资料的模块中查询信息。3.3 课程管理模块设计权限设计:权限为2的使用者为学生,权限为1的使用者为教师,权限为0的使用者为管理员。课程管理模块:能提供基本的课程管理功能:添加课程、修改课程、删除课程、浏览课程,每个功能的具体要求如下:课程管理功能层次图如图3.2所示:课程管理模块课程添加课程修改课程查询课程删除图3.2 课程管理功能层次图 添加课程:为权限为0的用户提供课程添加功能,要求能添加课编号、课程名称。修改课程:为权限达为0的用户提供课程修改功能,为了保证课程编号唯一,只能修改课程名称,不能对课程编号进行修改,如果要修改课程编号,请先删除课程,再添加对应课程的编号和名称。删除课程:为权限为0的用户提供课程删除功能,选择要删除的课程编号,显示出该课程的相关信息,确认后删除课程。浏览课程:为所有用户提供课程浏览功能,将所有课程信息以表格的形式显示到新窗体上。3.4 学生资料管理模块学生信息管理模块:记录学生基本信息,包括学生的学号、姓名、性别、出生日期、所在院系、专业、联系方式以及备注信息,对学生的基本资料进行添加、修改、删除、查询等基本的管理操作。学生资料管理功能层次图3.3所示学生资料管理模块学生资料添加学生资料修改学生资料查询学生资料删除图3.3 学生资料管理功能层次图添加学生信息:为权限是1或0的用户提供学生信息添加功能,要求能添加学生资料的所有项,并且确保学生学号的唯一性。修改学生信息:为权限是1或0的用户提供学生信息修改功能,输入要修改的学生学号后生成修改学生资料的页面,并在上面进行修改操作,要求能修改学生资料。删除学生信息:为权限是1或0的用户提供学生信息删除功能,要求在输入要删除的学生学号后生成删除学生资料的页面,使用者得到确认后,彻底的删除改学生的所有资料。查询学生信息:为所有用户提供学生资料查询功能,能提供不同类型的查询,包括全部查询、所在专业、班级、学号、姓名的查询,在选择选项并输入相应的数值后,生成学生的资料。第四章 逻辑结构设计逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。本系统的逻辑结构如下图4.1 图4.4所示:图4.1 tb_login 登陆用户基本信息表图4.2 tb_score 学生成绩基本信息表图4.3 tb_stuinfo 学生基本信息表图4.4 tb_clas 课程基本信息表第五章 物理设计及实施5.1 系统数据库设计数据库包括用户表、课程表、成绩表、学生资料表,在每个表中要求能纪录相应的基本信息,并做到分类和自动排序。在设计过程中,本机调试时采用了SQL数据库。5.2 相关模块数据库设计1 系统用户表记录的系统登陆用户的信息:登陆用户资料表(tb_login) 如图5.1所示:(以下所有图,为了方便截图,建立表语句后,加了个select 语句,所以有显示批查询完成)图5.1 登陆用户表2 学生成绩表记录了学生各科成绩学生成绩表(tb_score)如图5.2所示:图5.2 学生成绩表3 课程表纪录了课程的基本信息:课程资料表(tb_course)如图5.3所示图5.3 课程资料表 4、学生资料表记录了学生的基本信息:学生资料表如图5.4所示:图5.4 学生资料表第六章 系统设计及主要界面介绍6.各主要界面介绍6.1 登陆界面登陆界面Frm_login如图6.1所示:图6.1 登陆界面6.2 系统主要界面(本系统的主界面具体的实际功能只有修改密码,主要是起和后边各个窗体连接作用,相当于导航器,功能不可小视 ,界面设计全是自己用photoshop等软件自己设计的,所有素材保留在本程序目录下的skin文件夹中)系统主要界面Frm_tmain 系统简介如图6.2所示:图6.2 系统简介系统帮助如图6.所示:(主要是连接了些网上关于vb6.0和sql server 2000的资料,没有自己设置窗体和文本)图6. 帮助主题更改密码界面如图6.所示:图6. 更改密码成绩查询界面如图6.5所示下:(查询中也还有其他按纽功能,大体相同,不一一介绍)图6.5 成绩查询成绩查询结果显示如下如图6.6所示(注:为了方便检查我在数据库中加入了本班部分同学的信息,各个窗体的相关标签是相互关联的,如上边查询的是200522030109,点击查询得到以下表中的信息,下同)图6.6 成绩查询结果成绩录入界面如如图6.7所示图6.7 录入成绩选择相应的科目和班级提交后得到以下页面如图6.8所示图6.8 录入成绩表格信息修改界面如下如图6.9所示图6. 修改信息选择相应的科目和班级提交后得到以下页面:在此录入修改信息,如下图6.10所示图6. 修改成绩表格以下是注册信息表如图6.11所示图6. 注册界面(两个)6.2编码实现:6.1 连接数据库及网络函数申明这是两模块:modSql和toInternet的代码(为了方便后边的代码方便简单,就把这两个常用部分,定义了两个单独模块)如下:代码简单,不一一解释了模块一:ModSql:Public Function ExecuteSql(ByVal strSql As String) As ADODB.RecordsetOn Error GoTo ExecuteSql_Error 处理错误 Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Set cnn = New ADODB.Connection Set rst = New ADODB.Recordset cnn.Open filedsn=db_score.dsn;uid=sa;pwd= rst.Open Trim$(strSql), cnn, adOpenKeyset, adLockOptimistic Set ExecuteSql = rstExecuteSql_Exit: Set rst = Nothing Set cnn = Nothing Exit FunctionExecuteSql_Error:Msgbox (数据哭操作失败,请检查数据源配置!),vbokonly Resume ExecuteSql_ExitEnd Function模块二:toInternet:Rem 连接网络 .api函数Public Declare Function ShellExecute Lib shell32.dll Alias ShellExecuteA (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPublic Const SW_SHOWNORMAL = 1Public Sub toWeb(ByVal URL As String)Dim Sus As LongSus = ShellExecute(Handle, vbNullString, URL, vbNullString, nil, SW_SHOWNORMAL)End Sub 6.2 登陆界面实现其中有关代码如下:Option ExplicitPrivate Sub CmdAdmin_Click() MsgBox I am sorry! You are not the admin., vbOKOnly + vbExclamation, HKjsj052201hEnd SubPrivate Sub CmdEnter_Click() Dim strSql As String sql查询语句 Dim rst As New ADODB.Recordset If Trim(TxtUser.Text) = Then MsgBox 请输入正确的用户名!, vbOKOnly + vbExclamation, 警告 TxtUser.SetFocus Else strSql = select * from tb_login where userid = & TxtUser.Text & Set rst = ExecuteSql(strSql) If rst.EOF = True Then MsgBox 用户名不存在,请重新输入!, vbOKOnly + vbExclamation, 警告 Set rst = ExecuteSql(strSql) TxtUser.SetFocus Else If Trim(rst.Fields(userpwd) = Trim(TxtPwd.Text) Then rst.Close Me.Hide Frm_tMain.Show Else MsgBox 密码不正确,请重新输入!, vbOKOnly + vbExclamation, 警告 TxtPwd.Text = TxtPwd.SetFocus End If End If End If End SubPrivate Sub CmdNewuser_Click() Frm_Login.Hide Frm_Regester.ShowEnd Sub6.3 主界面代码如下Private Sub CmdAddStu_Click() FmeAdd.Visible = True Frmcla04.Visible = FalseEnd SubPrivate Sub CmdAlterScore04_Click() FmeAdd.Visible = False Frmcla04.Visible = TrueEnd SubPrivate Sub CmdCan01_Click() TxtYuanxi01 = TxtMajor01 = TxtClas01 = End SubPrivate Sub CmdChaXun05_Click() Frm_tMain.Hide Frm_Stu_Score.ShowEnd SubPrivate Sub CmdCla_Click() FClaIn.Visible = True FSubIn.Visible = FalseEnd SubPrivate Sub CmdCutStu_Click() FmeAdd.Visible = True Frmcla04.Visible = FalseEnd SubPrivate Sub Cmdok01_Click() Frm_tMain.Hide Frm_InScores.ShowEnd SubPrivate Sub CmdOk03_Click() FrmSub04.Visible = True Frmcla04.Visible = FalseEnd SubPrivate Sub CmdOk02_Click() FClaIn.Visible = True FSubIn.Visible = FalseEnd SubPrivate Sub CmdOk05_Click() Me.Hide Frm_AlterScore.ShowEnd SubPrivate Sub CmdSelSCore05_Click() Fmeclas05.Visible = True FmeZdy05.Visible = False FmeCxStu05.Visible = FalseEnd SubPrivate Sub CmdStu05_Click() FmeCxStu05.Visible = True FmeZdy05.Visible = False Fmeclas05.Visible = FalseEnd SubPrivate Sub CmdSub_Click() FClaIn.Visible = False FSubIn.Visible = TrueEnd SubPrivate Sub CmdXcode_Click() If TxtNewcode01.Text TxtNewcode02.Text Then MsgBox 两次输入的密码不一样!, vbOKOnly + vbExclamation, 错误 End If Dim rst As New ADODB.Recordset Dim strSql As String strSql = update tb_login set userpwd = & TxtNewcode01.Text & where userid = & Frm_Login.TxtUser.Text & Set rst = ExecuteSql(strSql) MsgBox 密码修改成功!, vbOKOnly + vbExclamation, HKJSJ052201H End SubPrivate Sub CmdZdy_Click() FmeZdy05.Visible = True Fmeclas05.Visible = False FmeCxStu05.Visible = FalseEnd SubPrivate Sub Form_Load() CobSub04.AddItem (软件工程) CobSub04.AddItem (汇编语言) CobSub04.AddItem (数据库设计) CobSub04.AddItem (计算机图形学) CobSub04.AddItem (JAVA程序设计) CobSub04.AddItem (计算机组成原理)End SubPrivate Sub Form_Unload(Cancel As Integer) If MsgBox(真的要退出本系统吗?, vbOKCancel + vbDefaultButton2, 退出系统) = vbCancel Then Cancel = 1End SubPrivate Sub LblHelp01_Click() Me.Hide Frm_AD.ShowEnd SubPrivate Sub LblHelp02_Click() Call toWeb(End SubPrivate Sub LblHelp03_Click() Call toWeb()End SubPrivate Sub LblHelp04_Click() Call toWeb(End SubPrivate Sub LblHelp05_Click() Me.Hide Frm_421.ShowEnd SubPrivate Sub Timer1_Timer()LblTime.Caption = 欢迎使用本系统! 祝学习工作愉快 + Format(Now, yyyy/mm/dd) _+ + Format(Now, dddd) + + Format(Now, hh:mm:ss AM/PM)End Sub6. 成绩录入界面代码Private Sub Form_Load()With MSFlexGrid1 固定表头 .FixedRows = 1 表头项居中 .FillStyle = flexFillRepeat .Col = 0 .Row = 0 .RowSel = 1 .ColSel = .Cols - 1 .CellAlignment = 4 .Rows = 25 .Cols = 5End With 设置MSFlexGrid表格的列宽 MSFlexGrid1.ColWidth(0) = 1900 MSFlexGrid1.ColWidth(1) = 1800 MSFlexGrid1.ColWidth(2) = 3200 MSFlexGrid1.ColWidth(3) = 1200 MSFlexGrid1.ColWidth(4) = 2600 表头 MSFlexGrid1.TextMatrix(0, 0) = 学号 MSFlexGrid1.TextMatrix(0, 1) = 姓名 MSFlexGrid1.TextMatrix(0, 2) = 课程名 MSFlexGrid1.TextMatrix(0, 3) = 分数 MSFlexGrid1.TextMatrix(0, 4) = 备注ShowData no return 添写固定科目 For k = 1 To 17 MSFlexGrid1.TextMatrix(k, 2) = LblTitle.Caption Next k End Sub 读取数据库的函数/循环读入Public Sub ShowData() Dim j As Integer Dim i As Integer strSql = select 学号,姓名 from tb_score Set rst = ExecuteSql(strSql) If rst.EOF = False Then With MSFlexGrid1 .Rows = 1 Do While Not rst.EOF .Rows = .Rows + 1 For i = 1 To rst.Fields.Count Select Case rst.Fields(i - 1).Type Case adDBDate .TextMatrix(.Rows - 1, i - 1) = Format(rst.Fields(i - 1) & , yyyy-mm-dd) Case Else .TextMatrix(.Rows - 1, i - 1) = rst.Fields(i - 1) & End Select Next i rst.MoveNext Loop End With End If rst.Close End Sub6. 成绩修改界面Option ExplicitDim rst As New ADODB.RecordsetDim strSql As StringDim k As IntegerDim j As IntegerDim i As IntegerPublic Sub ShowData() strSql = select 学号,姓名, & Trim(LblSub.Caption) & from tb_score Set rst = ExecuteSql(strSql) If rst.EOF = False Then With MSFlexGrid1 .Rows = 1 Do While Not rst.EOF .Rows = .Rows + 1 For i = 1 To rst.Fields.Count Select Case rst.Fields(i - 1).Type Case adDBDate .TextMatrix(.Rows - 1, i - 1) = Format(rst.Fields(i - 1) & , yyyy-mm-dd) Case Else .TextMatrix(.Rows - 1, i - 1) = rst.Fields(i - 1) End Select Next i rst.MoveNext Loop End With End If rst.Close End SubPublic Sub ShowScore() strSql = select & Trim(LblSub.Caption) & from tb_score Set rst = ExecuteSql(strSql) If rst.EOF = False Then With MSFlexGrid1 .Rows = 1 Do While Not rst.EOF .Rows = .Rows + 1 For i = 1 To rst.Fields.Count .TextMatrix(.Rows - 1, i + 2) = rst.Fields(i - 1) & Next i rst.MoveNext Loop End With End If rst.Close End SubPrivate Sub Command1_Click()End SubPrivate Sub CmdBack_Click() Me.Hide Frm_tMain.ShowEnd SubPrivate Sub CmdOk_Click() MsgBox 修改数据成功!单击“确定”返回, vbOKOnly + vbInformation, 计算机052201HEnd SubPrivate Sub CmdReTry_Click() Dim i As Integer For i = 0 To 16 Text1(i) = Next iEnd SubPrivate Sub Form_Load()On Error Resume NextLblSub.Caption = Frm_tMain.CobSub04.Text 显示biao qianMSFlexGrid1.Rows = 24MSFlexGrid1.Cols = 4设置MSFlexGrid表格的列宽 MSFlexGrid1.ColWidth(0) = 2400 MSFlexGrid1.ColWidth(1) = 2400 MSFlexGrid1.ColWidth(2) = 1800 MSFlexGrid1.ColWidth(3) = 1800 表头 MSFlexGrid1.TextMatrix(0, 0) = 学号 MSFlexGrid1.TextMatrix(0, 1) = 姓名 MSFlexGrid1.TextMatrix(0, 2) = 成绩 MSFlexGrid1.TextMatrix(0, 3) = 编辑 填充第一列 For k = 1 To 23 MSFlexGrid1.TextMatrix(k, 0) = 20052203010 & k Next kShowScoreShowDataEnd Sub6. 成绩查询Option ExplicitDim rst As New ADODB.RecordsetDim rstName As New ADODB.RecordsetDim strSql, strSqlName As StringPublic Sub ShowData() Dim j As Integer Dim i As Integer strSql = select 软件工程,汇编语言, 数据库设计,计算机图形学,JAVA程序设计,计算机组成原理 from tb_score where 学号 = & LblStuNo.Caption & Set rst = ExecuteSql(strSql) If rst.EOF = False Then With MSFlexGrid1 .Rows = 1 Do While Not rst.EOF .Rows = .Rows + 1 For i = 1 To rst.Fields.Count Select Case rst.Fields(i - 1).Type Case adDBDate .TextMatrix(.Rows - 1, i - 1) = Format(rst.Fields(i - 1) & , yyyy-mm-dd) Case Else .TextMatrix(.Rows - 1, i - 1) = rst.Fields(i - 1) & End Select Next i rst.MoveNext Loop End With End If rst.Close End SubPublic Sub ShowName() Dim i As Integer strSql = select 姓名 from tb_score where 学号 = & LblStuNo.Caption & Set rst = ExecuteSql(strSql) If rst.EOF = False Then LblStuName.Caption = rst.Fields(姓名) End If rst.CloseEnd SubPrivate Sub CmdOk_Click() Unload Me Frm_tMain.ShowEnd SubPrivate Sub Form_Load()LblStuNo.Caption = Frm_tMain.TxtStuNoC05.Text With MSFlexGrid1 固定表头 .FixedRows = 1 表头项居中 .FillStyle = flexFillRepeat .Col = 0 .Row = 0 .RowSel = 1 .ColSel = .Cols - 1 .CellAlignment = 4 .Rows = 2 .Cols = 6 End With guding liekuan MSFlexGrid1.ColWidth(0) = 1200 MSFlexGrid1.ColWidth(1) = 1200 MSFlexGrid1.ColWidth(2) = 1500 MSFlexGrid1.ColWidth(3) = 2000 MSFlexGrid1.ColWidth(4) = 2000 MSFlexGrid1.ColWidth(5) = 2400 MSFlexGrid1.TextMatrix(0, 0) = 软件工程 MSFlexGrid1.TextMatrix(0, 1) = 汇编语言 MSFlexGrid1.TextMatrix(0, 2) = 数据库设计 MSFlexGrid1.TextMatrix(0, 3) = 计算机图形学 MSFlexGrid1.TextMatrix(0, 4) = JAVA程序设计 MSFlexGrid1.TextMatrix(0, 5) = 计算机组成原理 ShowName 函数调用ShowData 函数调用End Sub6. 用户注册Option ExplicitPrivate Sub CmdOk_Click()On Error Resume Next Dim cn As New ADODB.Connection Dim rst As New ADODB.Recordset Dim i As Long Dim strSqlReg, strSqlChk As String strSqlReg = insert into tb_login (userid,userpwd) values ( & NewId.Text & , & NewPwd1.Text & ) strSqlChk = select userid from tb_login where userid = & NewId.Text & Set rst = ExecuteSql(strSqlChk) If Trim(NewId.Text) = Then MsgBox 请输入正确的用户名!, vbOKOnly + vbExclamation, 警告 NewId.SetFocus ElseIf NewId.Text = rst.Fields(userid) Then MsgBox 此用户名已经被注册!请重新输入新用户名!, vbOKOnly + vbExclamation, 警告 End If If NewPwd0.Text NewPwd1.Text Then MsgBox 对不起!你你两次输入的密码不一致!请仔细核对后重新输入!, vbOKOnly + vbExclamation, 警告 NewPwd0.Text = NewPwd1.Text = NewPwd0.SetFocus End If Set rst = Nothing Set rst = ExecuteSql(strSqlReg) MsgBox 注册成功!祝使用学习工作愉快!, vbOKOnly + vbExclamation, 谢谢使用 End SubPrivate Sub CmdToUp_Click() Frm_Regester.Hide Frm_Login.ShowEnd SubPrivate Sub EnterEle_Click() Frm_Regester.Hide Frm_RegEle.ShowEnd Sub结束语 “ 一个软件产品或一项软件服务帮助客户改进了他们的业务,因此获得客户支付的报酬,软件产品和服务的付出终于取得了回报。”通过本次课程设计,我终于明白学的理论和实际运用原来有这么多意想不到的差别,而只有通过自己反复动手才能发现这些微妙的细节。无论是在设计数据库还是在编程方面,我都收获颇多,而这些收获的的来,全来源于张老师对我们的严格和负责。我的报告修改了无数次了。我也从这无数次中巩固了许多原本没掌握好的知识和一种严谨的做人道理,也许这次还不能达到老师的严格要求(为此,小女子在此表示深深的歉意=_=),不过在以后的学习生活中,无论是干什么我都会严格要求自己,都会想到这段难忘的数据库设计周。 首先,我想对张老师说:张老师,您辛苦了!其次,我要感谢我们的学校领导,给我们安排了这次课程设计,给了我们展示自己才能的舞确立了我们的这个作业方向,设立了我这个作业项目(本来我是用JSP写的,能力实在有限,就又用VB和SQL所以部分界面有些网页化,就没修改了。见谅),不过没有他们的英明决策,我这个产品就不会在这个时候出现在这个美妙的地方。 其次,我要感谢我的朋友和同学,没有他们的支持,就没有这么“出色的软件”啦;然后我还要感谢我的爸爸妈妈,亲戚朋友,没有他们哪儿有我呀,当然就没的这软件了. 附录 使用说明1 本程序采用vb 6.0 ,SQL server 2000.2 为了方便老师检验,里边配带了已经写好的数据库,在项目子目录里面的sql目录里,将db_score.sql的文件打开后,拷贝到SQL Server 2000的查询分析器里,然后执行将产生需要的数据库结构。3 配置ODBC数据源,按照说明进行数据源的配置,程序对数据库的访问需要通过ODBC来实现。打开控制面板中管理工具的ODBC(数据源),在弹出的对话框中创建文件DSN。需要创建的文件DSN,创建名为db_score.dsn,登录方式选择使用用户输入登录ID和密码的SQL Server验证,登录ID为sa,密码为空,选择连接数据库为db_score(就是在查询分析器里创建的数据库)。4 运行
展开阅读全文