目录
1. 设计目的和任务 ........................................................1
2.开发环境 ...............................................................1
2.1 硬件环境 ..........................................................1
2.2 软件环境 ..........................................................1
3.设计题目 ...............................................................1
3.1 题目名称 ..........................................................1
3.2 题目详细描述 ......................................................1
3.3 功能要求 ..........................................................2
4.相关技术及知识点 .......................................................3
4.1 SqlConnection 对象 ................................................3
4.2 SqlCommand 对象 ...................................................3
4.3 SqlDataAdapter 对象 ...............................................4
4.4 DataTable 对象 ....................................................4
4.5 DataSet 对象 ......................................................5
5.设计与实现 .............................................................6
5.1 登录界面 ..........................................................6
5.2 教师管理界面 ......................................................7
5.3 管理员管理界面 ...................................................12
5.4 学生考试界面 .....................................................14
6.总结 ..................................................................18
7.参考资料 ..............................................................19
《高级数据库技术(ADO.NET&XML)》课程设计报告
1.设计目的和任务
综合运用 ADO.NET 相关知识,设计一个具有实用价值的学生考试管理系统。
(1)巩固和加深对本课程基本知识的理解和掌握;
(2)掌握 C#编程和 ADO.NET 程序调试的基本技能;
(3)掌握设计 ADO.NET 应用软件的基本思路和方法;
(4)提高运用 ADO.NET 解决实际问题的能力;
(5)培养撰写设计报告的能力。
2.开发环境
2.1 硬件环境
笔记本电脑
硬件概要
CPU
主板
内存
显卡
主硬盘
声卡
网卡
英特尔 Genuine Intel(R) CPU T2130 @ 1.86GHz
Wistron - 英特尔 945PM (Calistoga-PM) + ICH7-M/U
金士顿 2G DDR2-SDRAM 666 MHz
nVIDIA GeForce Go 7200 (G72)
希捷 120GB
英特尔 82801GB ICH7 - High Definition Audio [B0]
英特尔 PRO/Wireless 3945ABG Network Connection (HP - RoW)
2.2 软件环境
Microsoft Windows XP 操 作 系统 ;
Microsoft SQL Server 2005;
Microsoft Visual Studio 2005;
3.设计题目
3.1 题目名称
学 生 考试 管 理 系 统
3.2 题目详细描述
1、 登 录界 面
-1-
《高级数据库技术(ADO.NET&XML)》课程设计报告
2、 新 用户 注 册
3、 教 师管 理 界 面
4、 管 理员 管 理 界 面
5、 学 生在 线 考 试
3.3 功能要求
登录界面
功能:
1) 用户对应相应的权限进行登录,分教员、学生、管理员。登录后根据选择的
权限进入相应的界面;
2) 输入用户名框非空,密码框非空,权限选择判断;
3) 新学员用户注册。注册后需管理员激活才能登录。
教师管理界面
功能(按菜单项说明):
1) 试题管理,子菜单如下:
增加试题;
查询试题:按科目查询试题;
试题列表:按难度查询试题列表,并可增加、修改试题。
2) 考试管理,子菜单如下:
生成试卷;
试卷管理:查看试卷信息、激活/取消试卷。
3) 成绩管理,按试卷名查寻成绩。要算出平均分。
管理员管理界面
功能(按菜单项说明):
1) 用户管理,子菜单如下:
新建用户:新建学员用户,新建教员用户。
查询及修改学员。
用户信息列表,包括查询以及教员学员信息
2) 题库管理,管理试题库
学生在线考试
1) 维护个人信息 对个人信息进行查询, 修改
-2-
《高级数据库技术(ADO.NET&XML)》课程设计报告
2)在线答题。
功能:可以选择已激活试卷答题。
在线评分。
保存考试成绩可供教师查询。
4.相关技术及知识点
ADO.NET 提供了多种对象模型,比较典型的以下有五种,它们全部归类 System.Data.SqlClient
名称空间下。
4.1 SqlConnection 对象
ADO.NET 使用 SqlConnection 对象与 SQL Server 进行连接。连接字符串的常用形式有两种:
1.使用 Windows 集成安全身份认证,
例如:string connectionString
="IntegratedSecurity=SSPI;Database=MySchool.mdf;Server=localhost;";
2.在连接字符串中指定服务器名、用户 id、用户口令、数据库名等信息。
例如:string connectionString = "server=localhost; uid=sa; pwd=123;
database=MySchool.mdf";
然后通过连接字符串直接创建 SqlConnection 对象,如 SqlConnection conn = new
SqlConnection(connectionString);
4.2 SqlCommand 对象
在 ADO.NET 中,有两种操作数据库的方式:
1.无连接的方式;
2.保持连接的方式。
不论哪种都可以通过 SqlCommand 对象提供的方法传递对数据库操作的命令,并返回命令执行结果。
在保持连接的方式下操作数据库的一般步骤为:
1.创建 SqlConnection 的实例;
2.创建 SqlCommand 的实例;
3.打开连接;
4.执行命令;
5.关闭连接。
SqlCommand 对象提供了多种完成对数据库操作的方法。常用有:
-3-
《高级数据库技术(ADO.NET&XML)》课程设计报告
1.ExecuteNonQuery
该方法执行 SQL 语句的结果,但不返回命令执行的表数据,仅返回操作所影响的行数。
2.ExecuteReader
ExecuteReader 方法提供了只向前的、顺序的快速读取数据库中数据的方法。
3.ExecuteScaler()
该方法用于执行 SELECT 查询,得到的返回结果为一个值的情况,比如使用 count 函数求表中记录
个数或者使用 sum 函数求和等。
4.3 SqlDataAdapter 对象
SqlDataAdapter 对象通过无连接的方式完成数据库和本地 DataSet 之间的交互。使用这种方
式操作数据库的一般步骤为:
1.创建 SqlConnection 的实例;
2.创建 SqlDataAdapter 的实例,需要的话,根据 select 语句生成其他 SQL 语句;
3.创建 DataSet 的实例;
4.使用 Fill 方法将数据库中的表填充到 DataSet 的表中;
5.利用 DataGridView 或者其他控件对象编辑或显示数据;
6.需要的话,使用 Update 方法更新数据库。
SqlDataAdapter 对象通过 SelectCommand、InsertCommand、UpdateCommand 和 DeleteCommand 属
性为后台数据库提供对应的操作命令,并传递需要的参数。一般情况下,只需要提供 SELECT 语句
和连接字符串创建 SqlDataAdapter 对象,然后利用 SqlCommandBuilder 对象生成 InsertCommand、
UpdateCommand 和 DeleteCommand 属性。
4.4 DataTable 对象
ADO.NET 可以在与数据库断开连接的方式下通过 DataSet 或 DataTable 对象进行数据处理,当
需要更新数据时才重新与数据源进行连接,并更新数据源。DataTable 对象表示保存在本机内存中
的表,它提供了对表中行列数据对象的各种操作。可以直接将数据从数据库填充到 DataTable 对象
中,也可以将 DataTable 对象添加到现有的 DataSet 对象中。在断开连接的方式下,DataSet 对象
提供了和关系数据库一样的关系数据模型,代码中可以直接访问 DataSet 对象中的 DataTable 对象,
也可以添加、删除 DataTable 对象。
1. 创建 DataTable 对象
可以通过以下两种方式创建 DataTable 对象:
1) 通过 DataTable 类的构造函数创建 DataTable 对象,例如:
DataTable table = new DataTable();
-4-
《高级数据库技术(ADO.NET&XML)》课程设计报告
2) 通过 DataSet 的 Tables 对象的 Add 方法创建 DataTable 对象,例如:
DataSet dataset = new DataSet();
DataTable table = dataset.Tables.Add("MyTableName");
2. 在 DataTable 对象中添加列
在 DataTable 对象中添加列的最常用的方法是通过 DataTable 对象的 Column 属性中的 Add 方法。
添加后的每一列都是一个 DataColumn 对象。
3. 设置 DataTable 对象的主键
关系数据库中的表一般都有一个主键,用来惟一标识表中的每一行记录。通过 DataTable 对象的
PrimaryKey 属性可以设置 Datatable 的主键。主键可以是一个或者多个 DataColumn 对象组成的数
组。例如:
DataColumn[] key = new DataColumn[1];//dt 是一个 DataTable 对象
key[0] = dt.Columns[0];
dt.PrimaryKey = key;
4. 在 DataTable 对象中创建行
DataTable 对象的每一行都是一个 DataRow 对象,所以创建行时可以先利用 DataTable 对象的
NewRow 方法创建一个 DataRow 对象,并设置新行中各列的数据,然后利用 Add 方法将 DataRow 对
象添加到表中
5. 将 SQL Server 数据库中的表填充到 DataTable 中
除了可以直接创建 DataTable 对象的行列信息外,也可以通过 DateAdapter 对象的 Fill 方法将 SQL
Server 数据库中的表填充到 DataTable 对象中。
4.5 DataSet 对象
1. 创建 DataSet 对象
使用创建的 DataSet 对象可以完成各种数据操作,利用向导生成的数据库数据源是一个强类型的
DataSet 以及一对或多对强类型的 DataTable 和 TableAdapter 的组合。类型化的 DataSet 是一个
生成的类,是从.NET Framework 的一般 DataSet 类衍生来的,但提供了已定义的架构以及特定于
该架构的属性和方法。同时,对于 DataSet 中的每个表,还生成了特定于该 DataSet 的附加衍生类,
而且每个类都为相关的表提供了特定的架构、属性和方法。
当然,也可以直接创建一般的 DataSet 对象,例如:
DataSet myDataset = new DataSet();
2. 填充 DataSet 对象
创建 DataSet 后,就可以使用 SqlDataAdapter 对象把数据导入到 DataSet 对象中,比如通过 Fill
方法将数据填充到 DataSet 中的某个表中。
-5-
《高级数据库技术(ADO.NET&XML)》课程设计报告
5.设计与实现
(包 括 每个 设 计 点 的 文字 描 述 , 图 表, 关 键 代 码) (该说明在最终报告里面要删除!)
5.1 登录界面
在登录界面(图 5-1)用户对应相应的权限选择用户类型进行登录,分教员、学生、管理员。登录
后根据选择的权限进入相应的界面。输入用户名框非空,密码框非空,权限选择判断;登录界面还
有新用户注册,同样是选择不同用户类型进行注册。注册后需管理员激活才能登录。还有一个就是
找回密码,用户通过输入用户名和姓名等信息找回密码。
图 5-1
登录界面代码:
if (ValidateInput())
{
// 验证输入成功
string message = "";
// 验证输入的密码
if (loginBll.ValidateUser(txtLoginId.Text.Trim(), txtLoginPwd.Text, cboLoginType.Text, ref message))
{
// 记录登录用户名和登录类型
UserHelper.loginId = txtLoginId.Text;
UserHelper.loginType = cboLoginType.Text;
if (cboLoginType.Text == "教师")
-6-
《高级数据库技术(ADO.NET&XML)》课程设计报告
{
// 创建教员主窗体对象
TeacherForm teacherForm = new TeacherForm();
// 显示窗体
teacherForm.Show();
}
else if (cboLoginType.Text == "学生")
{
StudentForm studentForm = new StudentForm();
studentForm.Show();
}
else
{
AdminForm adminForm = new AdminForm();
adminForm.Show();
}
// 登录窗体隐藏
this.Visible = false;
}
5.2 教师管理界面
在教师管理界面(图 5-2)中有以下菜单和按钮:
*选择题目(图 5-3):右键选择题目加入到新建的试卷中;
*成绩管理(图 5-4)选择不同的试卷进行查询,读取数据到 DataSet,然后用 DataSet 中数据计算该
试卷的平均分;也可以直接修改 DataSet 中表的数据,然后保存。
增加试题:先输入好题目,然后提交,将数据插入数据库中;
还有一些其它的功能,查询试题:按科目查询试题;试题管理:按难度查询试题列表,并可增加、
修改试题。试题列表,按难度查询试题列表,并可增加、修改试题然后保存,将数据保存到数据库;
-7-