TianjinUniversityofTechnologyandEducation《SQLServer数据库》课程设计报告学生信息管理系统专业:班级:学号:学生姓名:指导教师:二〇一二年六月十七号至二十一号一.课程名称:学生信息管理系统作为管理员(教师)负责学生信息后台的管理,比如学生成绩的增、删,修改,用户的重新登录等操作。二、系统需求分析:2.1、使用工具软件:开发平台和语言:MicrosoftVisualStudio2010C#数据库软件:MicrosoftSQLServer20052.2、需求分析学生信息管理系统是各大高校所不可缺少的一部分,随着计算机水平的快速提高,学生信息管理系统也在不断地发展和完善。本管理系统主要包括了学生的信息管理以及课程和成绩管理。该系统有C#语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用ODBC技术实现前台.Net与后台SQL数据库的连接。2.3、系统设计分析管理员可以对本系统进行维护,但先要进行身份验证,成功后才可以实施管理员的权限。它具有开放性强﹑操作性强﹑工作效率高等特点。管理员又分为超级管理员和普通管理员,超级管理员能够增加和删除管理员,而普通管理员不能对管理员进行操作,只能对学生信息进行维护。学生可以登录本系统进行相应查询自己的学籍信息、课程和成绩信息等,但不可对其进行操作。本管理信息系统主要实现权限的操作,根据用户不同的权限来实现具体的操作。2.4、系统用户分析:“学生信息管理系统”通常有三种用户:系统管理员,普通管理员(教师)和学生。如下表就是提供了不同用户的使用权限:用户角色权限系统管理员对系统,数据库进行维护,主要对不同人员赋于不同的权限,增加和删除普通管理员普通管理员维护和管理学生基本信息、课程信息、成绩信息等,进行相应地添加、删除和修改。学生查询个人信息以及课程信息和成绩信息2.5系统实现的大致功能以下根据各个用户的职能进行UML用况图建模。图如下是读者用况分析,图如下是学生信息管理系统用况分析:系统管理员用况分析学生用况分析系统管理员用况分析学生学籍信息管理课程信息管理成绩信息管理修改密码普通管理员添加、删除和修改添加、删除和修改添加、删除和修改修改includeincludeincludeinclude学籍信息查询课程信息查询成绩信息查询学生添加、删除管理员修改管理员密码系统管理员三、总体设计3.1系统功能模块图3.2、E-R图1、系统E-R图3.3、表属性学生信息管理系统学籍管理课程管理成绩管理密码管理系统帮助管理员管理学生拥有档案信息管理教师授课选择课程所得成绩1111nnmnmn113.2.1管理员信息表字段名称标识名称数据类型空否字段说明Userid学号Vchar(16)否主键Userpwd密码Vchar(16)否userpower权限号Vchar(16)否3.2.2学生学籍表字段名称标识名称数据类型空否字段说明userid学号Varchar(16)否主键uername姓名Varchar(16)sex性别Char(4)minzu民族Char(10)birthday出生日期Datetimeintime入学时间Datetimeclass班级Char(20)comefrom生源地Char(20)beizhu备注Char(50)pwd密码Nchar(10)3.2.3课程信息表字段名称标识名称数据类型空否字段说明course课程号Char(16)否主码coursenanme课程名称Char(16)coursetime课时Char(16)fen学分Char(10)type类型Char(10)year年度nChar(10)3.2.4成绩表字段名称标识名称数据类型空否字段说明Id序号Int否Userid学号Vchar(16)是Username姓名Char(16)是Class班级Char(20)是Courseid课程号Char(16)是Coursename课程名Char(16)是Teacher老师名Char(16)是Score分数Numeric(10,0)是year年度Char(10)3.2.5用户表字段名称标识名称数据类型空否字段说明Userid学号Vchar(16)否主键username姓名Vchar(16)否Userpwd密码Vchar(16)是userpower权限Vchar(16)是3、关系模式教师(学号,密码,权限号)学生学籍(学号,姓名,性别,民族,出生日期,入学时间,班级,生源地,备注,密码)课程(课程号,课程名,课时,学分,类型,年度)成绩(序号,学号,姓名,班级,课程号,课程名,老师名,成绩,年度)用户(学号,姓名,密码,权限号)四、核心代码4.1系统与SQL数据库连接的配置1、Web.ConFig配置connectionStringsaddname=connStrconnectionString=DataSource=PC-201203011857;InitialCatalog=students;IntegratedSecurity=True/addname=studentsConnectionStringconnectionString=DataSource=PC-201203011857;InitialCatalog=students;IntegratedSecurity=True//connectionStrings2、程序中读取Web.ConFig配置读取文档中的数据库设置信息,只要使用如下语句即可,语句如下:addkey=connStrvalue=DataSource=PC-201203011857;InitialCatalog=students;IntegratedSecurity=True/4.2登录时错误提示首先从Users表中找到与之相匹配的Userid号,再通过IF语句进行用户身份的判断,不同的用户,他们所具有的操作也不同。具体代码和权限如下:protectedvoidButton1_Click(objectsender,EventArgse){stringstrconn=ConfigurationManager.AppSettings[connStr];SqlConnectionconn=newSqlConnection(strconn);conn.Open();DataSetds=newDataSet();SqlDataAdapterda=newSqlDataAdapter(select*fromuserswhereuserid='+txtid.Text+'anduserpwd='+txtpassword.Text+',conn);da.Fill(ds);if(ds.Tables[0].Rows.Count==0){Label3.Text=验证失败!账号或密码有错,请重新输入?;}else{Session[userid]=txtid.Text;Session[userpwd]=txtpassword.Text;Session[username]=ds.Tables[0].Rows[0][username].ToString();Session[userpower]=ds.Tables[0].Rows[0][userpower].ToString();if(Session[userpower].ToString()==0){Response.Redirect(admin/index.aspx);}elseif(Session[userpower].ToString()==1){Response.Redirect(student/index.aspx);}else{Label3.Text=对不起,你没有权限进行操作;}}4.3课程的添加通过IF语句判断字符串是否为空,否则将插入所输入的信息,具体代码如下:protectedvoidButton1_Click(objectsender,EventArgse){if(courseid.Text.ToString()==){Label7.Text=课程号不能为空?;}else{stringsqlstr=;sqlstr=insertintocourse(courseid,coursename,coursetime,fen,type)values('+courseid.Text+','+coursename.Text+','+coursetime.Text+','+fen.Text+','+type.Text+');conn.Open();mycmd=newSqlCommand(sqlstr,conn);mycmd.Dispose();try{mycmd.ExecuteNonQuery();Response.Write(scriptjavascript:alert('添加成功|!!!');/script);//Response.Redirect(student.aspx);}catch(SqlException){Response.Write(scriptjavascript:alert('添加失败!!!');/script);}finally{conn.Close();sqlstr=;}}}成绩,学生的增加代码都与课程相类似,在这就不一一列举了4.4学生课程的编辑还包括课程的删除protectedvoidButton1_Click(objectsender,EventArgse){stringuid=;uid=Page.Request[id];stringstrconn=ConfigurationManager.AppSettings[connStr];SqlConnectionconn=newSqlConnection(strconn);stringsql=;sql=updatecoursesetcourseid='+courseid.Text+',coursename='+coursename.Text+',coursetime='+coursetime.Text+',fen='+fen.Text+',type='+type.Text+'wherecourseid='+uid+';cmd=newSqlCommand(sql,conn);conn.Open();try{cmd.ExecuteNonQuery();Label7.Text=编辑成功;Response.Write(scriptjavascript:alert('编辑成功!!!');/script);}catch(SqlException){Label7.Text=编辑失败;}cmd.Dispose();conn.Close();}protectedvoidButton2_Click(objectsender,EventArgse){stringsql=;stringuid=;uid=Page.Request[id];stringstrconn=ConfigurationManager.AppSettings[connStr];SqlConnectionconn=newSqlConnection(strconn);sql=deletefromcoursewherecourseid='+uid+';cmd=newSqlCommand(sql,conn);conn.Open();try{cmd.ExecuteNonQuery();Label7.Text=删除成功;Response.Write(scriptjavascript:alert('删除成功!!!');/script);}catch(SqlException){Label7.Text=删¦除失败¹;}成绩,学生的编辑和删除代码都与课程相类似,在这就不一一列举了4.5重新登录首先从Users表中找到与之相匹配的Userid号,再通过If语句进行验证,