APP下载

基于C#.NET的成绩管理模块的设计与实现

2017-12-25马秀荣庄冀

呼伦贝尔学院学报 2017年6期
关键词:语句应用程序对象

马秀荣 庄冀



基于C#.NET的成绩管理模块的设计与实现

马秀荣 庄冀

(1.呼伦贝尔学院计算机学院 内蒙古 海拉尔 021008 2.嘉兴学院机电工程学院 浙江 南湖区 314000)

C#是基于NET平台开发的一种为.NET Framework设计的开发语言,NET Framework提供了一个操作数据库的技术---ADO.NET,MySql是一个开源的小型数据库管理系统,具有体积小、速度快、总体拥有成本低等特点。本文以成绩管理模块的设计与实现介绍了基于C#语言的程序开发过程。

C#;MySql数据库;ADO;成绩管理

1.引言

C#是专门为快速编写在.NET框架上运行的各种应用程序而设计的。该语言保持C和C++语言风格的表现力和简洁特征的同时,简化了C++的复杂性,同时综合了VB简单的可视化操作,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持实现了应用程序的快速开发,成为.NET平台的首选编程语言[1]。

应用C#语言来开发应用程序需要访问某种形式的数据库。MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在个人使用者和中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多个人使用者和中小型网站选择MySQL作为数据库,从而降低总体拥有成本[2]。

2.ADO数据库访问技术

ADO(Active Data Object).NET是微软.NET数据库的访问框架,它是数据库应用程序和数据源之间沟通的桥梁,主要提供一个面向对象的数据访问架构,用来开发数据库应用程序。ADO.NET由.NET框架数据提供程序和DataSet两部分组成,前者包含了Connection、Command、DataReader、DataAdapter对象在内的组件,后者是ADO.NET断开式结构的核心组件[3]。本模块是在连接状态下实现对数据库的访问,主要用到了以下对象。

2.1 Connection对象

Connection对象是一个与数据库进行连接的对象,包含着与数据源创建连接的信息。没有使用连接对象打开数据库,是无法从数据库中读取数据的。这个对象在ADO.NET 的最底层[1]。

2.2 Command对象

Command对象用于返回数据、修改数据、运行存储过程,以及发送或检索参数信息的数据库命令。这个对象是架构在Connection上,也就是Command对象是通过连接到数据源的Connection对象来下命令的;所以Connection连接到哪个数据库,Command对象的命令就下到哪里[1]。

2.3 DataReader对象

DataReader对象通过Command对象提供从数据检索信息的功能,是一次一条记录的向下读取数据源中的数据,不作其它的操作。因为DataReader在读取数据的时候限制了每次只读取一条记录,而且只能只读,所以使用起来不但节省资源而且效率很高[1]。

3.ADO数据库开发过程

3.1 安装驱动软件

要连接MySql数据库必须首先下载MySql官方的连接.net的文件“mysql-connector-net-6.6.6-noinstall.zip”,解压该文件后,根据.Framework选择相应的版本,在文件夹中需选择“mysql.data.dll”文件添加到项目的引用中。

3.2 添加引用

在项目的解决方案内,右键单击“引用”——选择“添加引用”——在弹出的对话框中,选择“浏览”——找到文件“mysql.data.dll”——单击“确定”,则在引用下会出现“mysql.data”。在添加引用之后,可以在代码窗口的命名空间处添加using语句,语句为:usingMySql.Data.MySqlClient;在命名空间使用using语句最大的优点是当引用数据库对象时不必每次输入过长的名称。

3.3 建立应用程序和MySql数据库的连接

在MySql数据库中已建立待访问的数据库文件“stuManagerDB”,里面有三张表,分别为学生表、课程表和成绩表。在应用程序中首先要创建Connection对象,语句为:MySqlConnection conn=new MySqlConnection();然后设置连接对象的ConnctionString属性,属性值为"Server=localhost;uid=root;pwd=root;Database=stuManagerDB";其中,Server是服务器名称,uid是账户,pwd是密码,Database是访问数据库的名称。

3.4 打开数据库

在设置连接对象的连接字符串属性后,需使用Open()方法来打开连接操作。语句为:conn.Open();

3.5 设置Command 对象

3.5.1. 实例化Command 对象。

Command对象在执行SQL命令之前,需设置其CommandText属性和Connection属性。

语句为:

stringsqlStr = "select * from student";//SQL字符串

MySqlCommand com= new MySqlCommand();

Com.Connection=conn;

com.CommandText = sqlStr;

3.5.2. 发送操作指令,执行SQL命令

执行SQL命令可以分为两种情况:有查询方法和非查询方法。执行查询操作时可以使用Command对象的ExecuteScalar()方法或ExecuteReader()方法,但二者返回的类型不同,ExecuteReader()方法返回MySqlDataReader类型,ExecuteScalar()方法返回object 类型。当得到DataReader对象后,还可以调用其Read()方法来读取一行字符流,若想得到数据流的某一列,则可以执行get()方法来实现。当对数据库进行非查询操作时,Command对象可以执行ExecuteNonQuery()方法来改变数据库中的数据。

3.6 关闭操作

若已打开DataReader对象,对数据库访问结束后需先被关闭,语句为:dr.Close();然后再调用连接对象的Close方法来关闭到数据库的连接,语句为:conn.Close();

4.设计实现

4.1 总体设计

学生成绩管理模块主要实现了教师可以查询学生成绩信息、添加学生成绩信息、修改学生成绩信息和删除学生成绩信息的功能。功能模块图如图1所示。

4.2 窗体设计

首先建立一个项目文件“学生成绩管理”,在该项目下新建一个窗体“frmScoreManagement”,窗体中需使用的控件如表1所示:

其中,列表视图“lvScoreQuery”来显示查询结果,三个命令按钮对应的单击事件分别实现添加学生成绩信息、修改学生成绩信息和删除学生成绩信息的功能。文本框来显示“课程编号”,“课程名称”,“学生姓名”,“学生成绩”信息,组合框显示“学生学号”信息。界面实现效果如图2所示。

表1 控件及属性

图2 成绩管理运行界面

4.3 核心代码

//窗体加载时,在列表视图中显示查询信息

private void frmScoreMag_Load(object sender, EventArgs e)

{

string conString = "server=localhost;uid=root;pwd

=root;database=stuManagerDB";//连接字符串

MySqlConnection conn = new MySqlConnection

(conString);//连接对象

conn.Open();//打开连接

string sqlStr = "select sNo from student";//查找选课学生的学号

MySqlCommand com = new MySqlCommand

(sqlStr, conn);

MySqlDataReaderdr = com.ExecuteReader();

while(dr.Read())

{

cboStudentNo.Items.Add(dr["sNo"]);//在组合框内显示学号

}

cboStudentNo.SelectedIndex = 0;

dr.Close();

conn.Close();

showScoreMsg();//在列表视图中显示查询结果

}

//插入学生成绩

private void btnAdd_Click(object sender, EventArgs e)

{

DBHelper.ChangeData(sql);

string sqlStr=string.Format("insert into score(sNo,curNo,grade) values('{0}','{1}',{2})", cboStudentNo.Text, txtCourseId.Text, txtScore.Text);

DBHelper.ChangeData(sqlStr);//调用ChangeData()方法实现插入操作

showScoreMsg();

}

//删除学生成绩

privatevoid btnDelete_Click(object sender, EventArgs e)

{

string sqlStr=string.Format("delete from score wheresno='{0}' and curno='{1}'", cboStudentNo.Text, txtCourseId.Text, txtScore.Text);

DBHelper.ChangeData(sqlStrl); //调用ChangeData()方法实现删除操作

showScoreMsg();}

//修改学生成绩

private void btnUpdate_Click(object sender, EventArgs e)

{

string sqlStr = string.Format("update score set grade={0} where sno='{1}' and curno='{2}'", txtScore.Text, cboStudentNo.Text, txtCourseId.Text);

DBHelper.ChangeData(sqlStr); //调用ChangeData()方法实现更新操作

showScoreMsg();

}

5.结束语

本文主要阐述了在C#.NET应用程序中,利用ADO.NET技术对数据库的访问操作。文中对数据库的访问步骤可以帮助初学者有效地连接MySql数据库,通过具体实例对ADO.NET中的数据提供对象的属性和方法进行了具体的应用,有效地完成了对学生成绩信息的查询、添加、修改和删除操作。

[1]甘勇,尚展垒.C#程序设计[M].北京:人民邮电出版社,2016.

[2]刘志.中小型超市管理系统设计与实现[D].西安:西安电子科技大学,2013.

[3]马骏 C#程序设计及应用教程[M].北京:人民邮电出版社,2009.

责任编辑:乌晓梅

2017-11-16

马秀荣(1976-),女,汉族,呼伦贝尔学院计算机学院,副教授,硕士。研究方向:计算机应用。

庄冀(1995-),男,汉族,嘉兴学院机电工程学院。研究方向:测控技术与仪器。

TP311.52

A

1009-4601(2017)06-0134-04

猜你喜欢

语句应用程序对象
涉税刑事诉讼中的举证责任——以纳税人举证责任为考察对象
重点:语句衔接
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
攻略对象的心思好难猜
基于熵的快速扫描法的FNEA初始对象的生成方法
区间对象族的可镇定性分析
我喜欢
三星电子将开设应用程序下载商店
作文语句实录