项目实训-学生信息管理系统(2)

2019-03-22 13:10

本章主要任务是从实际应用出发,使学生能够掌握SQL Server 等大型数据库技术,掌握C#+SQL Server等大型数据库软件进行大型数据库桌面应用程序开发的基本过程和基本方法,并能够运用C#进行简单的办公自动化系统编程。

在进行项目详细设计之前,首先创建一个名为StuInfoManage的windows应用程序项目。

2.1 数据库通用访问类的创建

考虑到整个项目中多个窗体的很多位置都需要涉及到数据库的访问操作,所以我们将数据库操作频繁使用的部分代码抽取出来,组合而成数据库访问类,从而避免重复编写相同代码的工作。

常见的数据库访问操作主要有:更新操作(包括插入数据、修改数据和删除数据)、查询操作(指直接执行SQL语句进行数据库操作)、存储过程的执行操作(主要包括返回结果集的存储过程以及使用返回值的存储过程)等。

在StuInfoManage项目中进行以下操作:

① 添加一个类:将其中创建的Class1.cs重命名为SqlHelper.cs。 ② 在该类中添加如下代码:

public class abstract class SqlHelper {

//获取数据库连接字符串,其属于静态变量且只读,项目中所有文档可以直接使用,但不能修改

public static readonly string ConnectionString = \= .;database=stuInfoManage;Integrated Security = true;\;

/// 执行一个不需要返回值的SqlCommand命令,通过指定专用的连接字符串。 public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) {

SqlCommand cmd = new SqlCommand();

using (SqlConnection conn = new SqlConnection(connectionString)) {

//通过PrePareCommand方法将参数逐个加入到SqlCommand的参数集合中 PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); int val = cmd.ExecuteNonQuery(); //清空SqlCommand中的参数列表 cmd.Parameters.Clear(); return val; } }

C/S结构项目实训(C#语言版)

6

/// 执行一条返回SqlDataReader的SqlCommand命令,通过专用的连接字符串。 public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) {

SqlCommand cmd = new SqlCommand();

SqlConnection conn = new SqlConnection(connectionString); try {

PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); cmd.Parameters.Clear(); return rdr; } catch {

conn.Close(); throw; }

/// 执行一条返回DataSet的SqlCommand命令,通过专用的连接字符串。 public static DataSet ExecuteDataset(string connectionString, CommandType commandType, string commandText, params SqlParameter[] commandParameters) {

SqlCommand cmd = new SqlCommand();

using (SqlConnection cn = new SqlConnection(connectionString)) {

cn.Open();

PrepareCommand(cmd, cn, (SqlTransaction)null, commandType, commandText, commandParameters);

SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); cmd.Parameters.Clear(); return ds; } }

/// 为执行命令准备参数

private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms) {

//判断数据库连接状态

if (conn.State != ConnectionState.Open) conn.Open();

cmd.Connection = conn;

C/S结构项目实训(C#语言版)

7

cmd.CommandText = cmdText; //判断是否需要事物处理 if (trans != null)

cmd.Transaction = trans; cmd.CommandType = cmdType; if (cmdParms != null) {

foreach (SqlParameter parm in cmdParms) cmd.Parameters.Add(parm); } } /*

* 功能:调用存储过程,并返回存储过程返回值的通用方法

*

*

* * 返回存储过程的返回值 */

public int ProcReturnValue(string procName, SqlParameter[] cmdparam,int DataOpType) {

SqlConnection sqlconn=new SqlConnection(ConnectionString); try {

if (sqlconn.State != ConnectionState.Open) {

sqlconn.Open(); }

SqlCommand sqlcmd = new SqlCommand(); sqlcmd.Connection = sqlconn; sqlcmd.CommandText = procName;

sqlcmd.CommandType = CommandType.StoredProcedure;

if (cmdparam != null) {

foreach (SqlParameter param in cmdparam) sqlcmd.Parameters.Add(param); }

sqlcmd.Parameters.Add(new

SqlParameter(\,SqlDbType.TinyInt));

sqlcmd.Parameters[\].Direction = ParameterDirection.ReturnValue;

C/S结构项目实训(C#语言版)

8

if (DataOpType == 1) {

sqlcmd.ExecuteScalar(); }

if(DataOpType == 2) {

sqlcmd.ExecuteNonQuery(); }

return Convert.ToByte(sqlcmd.Parameters[\].Value); } catch

{ throw; }

finally {

sqlconn.Close(); } }

}

至此,数据库通用访问类创建完毕。我们可以用此类完成几乎所有的数据库操作。

2.2 系统主界面设计与功能实现

(1)界面设计的基本要求

① 界面设计要完整的体现用户的功能需求,并且美观大方。 ② 界面设计的交互操作过程符合用户的习惯性工作过程。 (2)系统主界面设计

在stuInfoManage项目中将Form1.cs重命名为MainForm.cs,并参照表格2.2-1的说明设置MainForm窗体的属性。

属性名 IsMdiContainer Text StartPosition WindowState True 学生信息管理系统 CenterScreen Maximized 表格2.2-1:主窗体主要参数设置

设置 C/S结构项目实训(C#语言版) 9

(3)系统菜单设计

根据需求,系统需要在主窗体上创建一个菜单系统来引导用户的操作,至于菜单系统中的各级菜单显示字符以及命名参见表格2.2-2说明。

主菜单 系统管理 数据查询 数据添加 数据更新 数据删除 帮助 系统登陆 注销 退出 学生基本信息浏览 学生成绩信息查询 课程成绩信息查询 学生基本信息添加 学生基本信息更新 学生基本信息删除 关于本系统 子菜单 命名 SystemManageMenuItem LoginInMenuItem LoginOutMenuItem SystemExitMenuItem DataQueryMenuItem StuBasicInfoQueryMenuItem StuGradeInfoQueryMenuItem CourseGradeQueryMenuItem DataAddMenuItem StuBasicInfoInsertMenuItem DataUpdateMenuItem StuBasicInfoUpdateMenuItem DataDeleteMenuItem StuBasicInfoDeleteMenuItem HelpMenuItem AboutSystemMenuItem 表格: 2.2-2 菜单系统主要参数设置

(4)系统菜单功能初始状态的设定

由于该系统需要合法用户登陆成功后才能操作相应的系统主要功能,所以系统的主要功能的初始状态是不可用的。此外,当系统登录成功后需要打开系统主要功能锁定。为了实现该功能以及方便以后操作,首先在MainForm类中添加以下两个私有方法:

//将系统主要功能调用的菜单锁定的方法 private void MenuStatusOFF() {

DataQueryMenuItem.Enabled = false; DataAddMenuItem.Enabled = false;

C/S结构项目实训(C#语言版)

10


项目实训-学生信息管理系统(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:院部年度考核细则(校14方案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: