1实验八开发数据库应用系统1.实验目的利用SQLServe作为后台数据库,使用C#作为前台开发语言,通过ADO.NET数据库访问技术,构建一个应用系统,实现对数据库的连接以及数据查询、修改和更新等操作。2.实验任务与要求A学生成绩管理系统(一)系统功能分析学生成绩管理系统的总体任务是实现学生课程信息处理的系统化、规范化和自动化。该系统要实现的主要功能有:(1)用户登录管理完成用户信息的确认,确保只有合法的用户才能使用本系统。(2)基本信息管理完成学生信息、课程信息的管理。(3)成绩信息管理包括学生选课信息管理以及选课信息的查询统计。其中,选课信息的查询统计包括:按学号查询、按课程查询等。(二)系统功能模块设计按(一)给出的各项功能,系统的功能模块划分如下:(1)用户登录模块(UserLogin.cs)(2)基本信息管理模块a.学生信息管理模块(frmStudent.cs)b.课程信息管理模块(3)选课信息管理模块a.学生选课信息管理模块b.选课信息统计模块按学号查询模块(frmQuerySno.cs)按课程查询模块(三)数据库设计数据库结构的设计直接影响到应用系统的效率以及实现的效果。合理的数据库结构可以提高数据存储的效率,确保数据的完整性和一致性。本系统直接采用实验一的学生-课程数据库。(请自行检查student、sc和course表的主码和外码是否已设置好)在学生-课程数据库中增加一个用户表。createtableusers(UserIDnvarchar(8)notnullprimarykey,UserNamenvarchar(20),Passwordnvarchar(8)2)(四)设置数据库结构(1)设置SQLServer登录帐号按实验七的方法,在服务器的“安全性”中新建SQLServer验证的帐号applogin,默认数据库为学生-课程数据库。(2)在学生-课程数据库的“安全性”中设置用户applogin的数据库成员角色身份为db_owner。(3)创建视图(1个)--显示学生成绩信息的视图createviewview_stu_gradeasselectstudent.snoasstudentsno,sname,sex,dept,sc.cno,cname,grade,creditfromstudent,sc,coursewherestudent.sno=sc.snoandsc.cno=course.cno(4)创建存储过程(3个)--向学生表插入数据createprocInsertStudent@Snochar(8),@Snamechar(8),@Ageint,@Sexchar(2),@Deptvarchar(50)asdeletefromstudentwhereSno=@Snoinsertintostudentvalues(@Sno,@Sname,@Age,@Sex,@Dept)--更新学生表的数据createprocUpdateStudent@Snochar(8),@Snamechar(8),@Ageint,@Sexchar(2),@Deptvarchar(50)asUpdatestudentsetsno=@Sno,sname=@Sname,age=@Age,sex=@Sex,dept=@DeptwhereSno=@Sno--删除Student表的数据createprocDeleteStudent@Snochar(8)asdeletefromstudentwheresno=@Sno(五)系统实现过程以下内容在VisualStudio2010平台中完成。(1)创建项目,命名为StuGrade。3(2)创建系统的主窗口4更改窗体frmMain的标题:在窗体设计视图的下方空白处点击右键,5选择“属性”,在属性列表中修改原标题为“学生成绩管理系统”(2)创建公共类为项目StuGrade添加一个公共类DataBase,保存为文件DataBase.cs。该类的功能是实现对学生-成绩数据库的存取。6DataBase.cs的代码如下。(绿色字体为注释,红色字体为需要理解含义的代码)//引入需要使用的系统包usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Data;usingSystem.Data.SqlClient;namespaceStuGrade{classDataBase{SqlConnectionSqlConn=newSqlConnection();//定义一个数据库连接对象//SQLServer验证登录。如果失败,请检查登录名app的属性,是否具有dbo权限stringsConn="Server=ASUS-PC;InitialCatalog=sales;UserID=applogin;Password=app";7publicvoidOpen()//实现连接数据库并打开连接操作{SqlConn.ConnectionString=sConn;if(SqlConn==null){SqlConn=newSqlConnection(sConn);}if(SqlConn.State==ConnectionState.Closed)SqlConn.Open();}publicvoidClose()//实现关闭数据库连接操作{if(SqlConn!=null){SqlConn.Close();}}//RunSelectSQL是重载方法,根据需要实现SELECT查询语句,返回数据视图或者结果集。publicDataViewRunSelectSQL(stringsqlstr){this.Ope...