资源描述
基于C#、SQL的学生成绩管理系统项目的设计与实现【实用文档】doc
文档可直接使用可编辑,欢迎下载
基于C#、SQL的学生成绩管理系统项目的设计与实现
摘 要
成绩管理是任何一个教育单位不可或缺的重要组成部分之一,它的职责对于学校的教务管理工作人员来说是至关重要的,随着电子信息技术的飞速发展,利用在计算机中实现管理是势在必行。
本文介绍了学生成绩管理系统从分析――>设计――〉开发的全过程,在开发过程中,主要用Microsoft Visual Studio 2010设计窗体及代码,MicrosoftSQLServer2005建立数据库,实现了学生信息查询、学生信息修改、学生成绩录入等基本功能。学生成绩管理系统具有查找方便、检索迅速、存储量大、可靠性高、成本低等优点,学生成绩管理系统的使用,提高了学生成绩管理的工作效率与便捷。
本论文叙述了我校学成绩管理的现状。重点介绍了学生成绩管理系统的实现过程:包括系统分析、系统调查、数据流程分析、功能设计、数据库设计、系统物理配置方案、系统实现、系统测试和调试。本系统主要功能有用户管理、学生注册、班级信息录入、学生信息录入、班级课程录入、学校专业信息录入、课程信息录入、学生成绩录入、教师信息录入、数据更新。包括功能需求描述、数据库设计等内容,介绍了本系统的具体实现,开发过程中的结论及体会。
1.绪论
本毕业论文是以学校学生管理信息系统建设中的成绩管理系统的开发为背景,论述了管理信息系统的概念、结构及系统开发的基本原理和方法,全文共分为绪论、系统分析、概要设计、详细设计、开发总结等
1。1引言
在现代,高科技的飞跃发展,计算机的大量普及,使得人们生活节奏越来越快。因此对教育行业的多元信息进行有效的管理工作,也成为教育行业中的重中之重.目前,学校工作繁杂、资料重多,虽然各类管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。为各高校教务工作人员减轻负,提高工作效率,所以制作了学生成绩管理系统。
学生成绩管理系统依据开发要求主要应用于教育系统,完成对日常的教育工作中学生成绩档案的数字化管理.比较系统地对教务、教学上的各项服务和信息进行管理,使数据管理更现代化、自动化、智能化、人性化.同时,减轻了学院教务人员管理的工作量,缩小开支,提高工作效率和准确率,使其变得更具有条理性,科学性,为教育行业做出了巨大的贡献,也为今天的民办教育在未来市场的竞争力有所提高。
学生成绩管理系统使用了全新的成绩管理理念,系统从完善的基础信息管理,和对创建新用户、已创建的成绩数据的录入,修改,浏览,统计等功能操作,基本能够满足各高校教师的需要。随着计算机技术的发展,特别是计算机网络技术与数据库技术的发展,使用人们的生活与工作方式发生了很大的改观。网络技术的应用使得计算机之间通信、信息共享成为可能,而数据库技术的应用则为人们提供了数据存储、信息检索、信息分析等功能,从而使得工作更高效地进行。
21世纪是飞速发展的信息时代,信息社会的高科技,商品经济化的高效益,企业经营全球化,使计算机的应用已经普及到经济和生活当中的各个领域,这正是计算机被广泛的应用于信息管理的环境。尤其是对于复杂的信息管理,计算机能充分的发挥其优越性,高效方便的进行信息管理。为提高工作效率,同时摆脱成绩管理人员在工作中出现的一些弊端,所以需要开发一个成绩管理系统。为此,本系统就是为更好的管理成绩而设计的。
1.2课题研究内容
此成绩管理系统主要应用C#编程和MicrosoftSQLServer2005数据库连接等相关知识。主要需要熟练掌握C#开发技术,将所学知识用于实际生活中,并且在实际生活中发挥其主要功能并获得效益。本设计内容包括以下功能模块。
(1)学生信息查询模块:主要包括可以通过学号、姓名、专业查询。
(2)学生信息修改模块:主要包括修改学号、姓名、出生日期、专业、总学分删除学生信息,更新学生信息等。
(3)学生成绩录入模块:主要包括录入学生的各科成绩和删除。
3.可行性分析
可行性分析也称为可行性研究,即是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、操作的方面进行分析和研究,以避免投资失误,保证新系统的开发成功可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
可行性分析的目的就是用最小的代价在尽可能短的时间内确定问题能否解决.可行性研究实质上是要进行一次大的压缩简化了系统分析和设计的过程.
3.1技术可行性
成绩管理系统系统采用Microsoft Visual Studio 2010平台进行开发,它是一个集成于代码编写、运行、调试及发布等功能于一身的强大的开发环境.开发工程的效率非常高,环境也提供了自动代码生成机制,可以有效的减少代码编写量。基于VS的应用程序,对于程序的发布也是十分的容易,因此,开发本系统在技术上完全可行。
3.2经济可行性
成绩管理系统成本主要集中在软件的开发上,当系统投入使用后可以为成绩管理部门节约大量的人力。它所带来的效益远远大于系统软件的开发成本,在经济上完全可行。
3。3操作可行性
在设计成绩管理系统的过程中,充分考虑到管理人员的习惯。界面风格使用简单大方形式呈现.使用方便,而无需进行任何软件的安装,操作简单;按权限使用并提供多种查询手段,在操作上可行。
3.4系统性能要求分析
根据前面所作的需求分析和功能的需求可以得出,成绩理系统实施后,应达到以下系统性能标准:
(1) 规范、完善的基础信息设置。
(2) 对所有学生成绩信息进行集中管理。
(3) 对操作人员设置不同的操作权限,为管理员提供修改权限功能。
(4) 提供快速成绩检索功能。
(5) 实现成绩录入、查询、删除的功能。
(6) 系统运行稳定、安全可靠。
(7) 网站设计页面要求美观大方、个性化,功能全面,操作简单。
(8) 整体结构和操作流程合理顺畅,实现人性化设计。
2。需求分析
2.1需求分析概述
随着科学技术的不断提高,计算机科学日渐成熟,作为计算机应用的一部分,使用计算机对图书信息进行管理,具有手工管理所无法比拟的优点。进行数据库设计首先必须准确了解与分析用户需求(即用户想要做什么)。需求分析整个设计过程的基础,是最困难、最耗费时的一步。需求分析是否做得充分、准确,决定了在此基础上创建的数据库及应用程序的速度与质量。通过需求分析阶段对图书管理系统的整个应用情况作全面的、详细的调查,确定图书管理的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,并把这些写成用户和数据库设计者都能够接受的文档.事实上,需求分析是数据库开发中最难的任务之一。因为,系统本身是可变的,用户的需求必须不断调整,使之与这种变化相适应。所以,设计人员必须认识到:在整个需求分析以及系统设计过程中,用户参与的重要性,通过各种方法展开调查分析。现在我国的教育机构对学生成绩管理还普遍停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代,这种传统的管理方法必然被计算机为基础的信息管理所取代。
通过调查,要求系统具有权限设置功能的登录模块,学生可以实现成绩信息查询功能。教务管理人员能够实现注册新用户,学生成绩信息的查询、录入、删除、修改、浏览、统计等功能.
2.2系统需求
随着学校规模的不断扩大,学生人数逐年增加,学校对学生成绩管理的工作量也越来越大。学生成绩管理涉及大量的数据处理,如果用手工来完成庞大的数据处理,将费时费力,还容易出错,为了满足学校对学生成绩管理的需要,急需要一套学生成绩管理系统来完成这项工作。作为计算机应用的一部分,使用计算机对学生成绩信息加以管理,将拥有着手工管理所无法比拟的优点
例如:输入迅速、查找方便、可靠性高、存储量大、成本低等.这些优点能够极大地提高学生成绩管理的效率也是学生成绩的科学化、正规化管理的重要条件。同时还要注意下列几点:
(1) 由于各方面的限制,如人员不够、技术缺乏等原因,开发时应本着循序渐进,逐步完善的原则,不能贪大求全,盲目开发
(2) 要注意信息的准确、及时、适用、经济,只有及时、准确的信息才能保证系统开发的质量和效率.
(3) 从全局出发注意系统开发的整体优化性,同时还要注意系统的可扩展性和可延伸性。
(4) 尽量采用学校现有的软硬件环境,及先进的管理系统开发方案,从而达到充分利用学校现有资源、提高系统开发水平和应用效果的以及减少开发成本的目的。
(5) 系统应符合学校对学生成绩管理的规定,满足学生成绩管理的工作需要并达到操作过程中的直观、方便、实用、安全等要求.
根据成绩管理系统的特点及要求,可以将其分为“学生信息查询模块"“学生信息修改模块”“学生成绩录入模块”3个主要部分,其关系图如图2-2所示。
输出学生信息
学生基本信息
存储文档
录入学生信息
管理员
存储文档
查询学生信息
进入
学生课程基本信息
课程基本信息
显示信息表
存储文档
修改学生信息
图2-1关系图
2.3功能需求
通过对一些实际成绩管理的考察、分析,并结合成绩管理的要求及实际的市场调查。分析本系统具有以下功能:
(1) 网站设计页面要求美观大方、个性化,功能全面,操作简单.
(2) 要求实现基础信息的管理平台。
(3) 要求对所有学生进行管理.
(4) 实现成绩录入、查询、删除的功能。
(5) 提供快速的成绩检索功能,保证数据查询的灵活性。
(6) 提供灵活、方便的权限设置功能,使整个系统的管理分工明确.
(7) 具有易维护性和易操作性。
4。数据库设计
用户需求具体由成绩管理提供保存、更新、查询系统,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性
(1) 学生基本信息(XS):学生学号(XH)、学生姓名(XM)、学生专业名(ZYM)、学生性别(XB)、学生出生日期(CSSJ)、学生专业分(ZXF)、学生备注(BZ),
表4-1所示。
学生基本信息表4-1
字段名称
数据类型
字段大小
说明
XH
varchar
20
学号
XM
varchar
40
姓名
ZYM
varchar
80
专业名
XB
varchar
20
性别
CSSJ
datetime
4
出生日期
ZXF
varchar
20
专业分
BZ
varchar
200
备注
(2) 学生课程基本信息(XS_KC):学生学号(XH)、学生课程号(KCH)、学生成绩(CJ),表4—2所示。
学生课程基本信息表4-2
字段名称
数据类型
字段大小
说明
XS_KC
varchar
20
课程信息
XH
varchar
40
学号
KCM
varchar
80
课程名
XF
varchar
20
学分
(3) 课程基本信息(KC):学生课程号(KCM)、学生课程名(KCM)、学生学分(XF)
学生基本信息如表4-3所示。
课程基本信息表4-3
字段名称
数据类型
字段大小
说明
KC
varchar
20
课程基本信息
KCH
varchar
80
课程号
KCH
varchar
80
课程号
XB
varchar
20
学生成绩
5.成绩管理系统功能的设计和实现
5。1系统主界面
用户登录窗体中放置了label控件,显示登录窗体标题:学生成绩管理系统,另外还增加了三个Button控件,Buuton1,button2,button3作用分别是查询信息、修改信息、录入成绩.窗体名称为界面功能介绍。主界面为进入学生管理系统各模块的入口,用户可根据上面各个模块名称单击进入各个管理模块,从而进行对系统的管理操作。如图5—1所示。
图5-1学生成绩管理系统主界面
主界面的代码:
usingSystem;
usingSystem.Collections。Generic;
usingSystem.ComponentModel;
usingSystem。Data;
usingSystem.Drawing;
usingSystem。Text;
usingSystem。Windows.Forms;
usingSystem。Data.SqlClient;
namespacestudent_zhaoqing
{
publicpartialclassForm1:Form
{
publicForm1()
{
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
SearchFormsearchfrm=newSearchForm();
searchfrm。ShowDialog();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
ModifyFormmodifyfrm=newModifyForm();
modifyfrm.ShowDialog();
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
ScoreFormscorefrm=newScoreForm();
scorefrm.ShowDialog();
}
privatevoidForm1_Load(objectsender,EventArgse)
{
skinEngine1.SkinFile="Calmness。ssk";
}
}
5.2信息查询界面
各个控件介绍:
该模块主要由一个groupBox1(输入查询条件)
三个label:分别设置名字为学生的学号,姓名,专业
二个TextBox,分别可以输入学生的学号和姓名,然后进行查询
一个ComboBox下拉列表选项菜单,作用为选择要查询学生的专业
一个Button按扭,起到查询的作用
一个DataGridView,起到显示要查询学生的各种信息
学生信息查询的运行界面如图5-2所示。
图5—2学生信息查询界面
学生信息查询源代码:
usingSystem;
usingSystem。Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem。Windows。Forms;
usingSystem.Data.SqlClient;
namespacestudent_zhaoqing
{
publicpartialclassSearchForm:Form
{
publicSearchForm()
{
InitializeComponent();
}
privatestringsql="";
privatevoidSearchForm_Load(objectsender,EventArgse)
{
stringconnStr=@"DataSource=。;database=XSCJ;IntegratedSecurity=True";
string_sql="SelectXHas'学号',XMas'姓名',ZYMas'专业',XBas'性别',”
+"CSSJas’出生日期',ZXFas'总学分',BZas'备注'fromXS";
SqlConnectionconn=newSqlConnection(connStr);
conn.Open();
SqlDataAdaptersda=newSqlDataAdapter(_sql,conn);
DataSetds=newDataSet();
sda。Fill(ds);
StuDGV.DataSource=ds.Tables[0].DefaultView;
SqlCommandcmd=newSqlCommand(”SelectZYMfromXS",conn);
SqlDataReaderdr=cmd.ExecuteReader();
stuZY。Items.Add("所有专业”);
while(dr.Read())
{
stuZY.Items.Add(dr["ZYM"]);
}
dr.Close();
conn.Close();
if(stuZY。Items。Count>0)
{
stuZY。SelectedIndex=0;
}
}
privatevoidMakeSqlStr()
{
sql="”;
if(stuXH。Text.Trim()!=string.Empty)
{
sql=”andXHlike’%”+stuXH。Text.Trim()+"%'";
}
if(stuXM.Text.Trim()!=string.Empty)
{
sql+=”andXMlike’%"+stuXM.Text.Trim()+"%'";
}
if(stuZY.Text!=”所有专业”)
{
sql+="andZYM=’"+stuZY.Text+”'”;
}
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
MakeSqlStr();
stringconnStr=@"DataSource=。;database=XSCJ;IntegratedSecurity=True”;
string_sql=”SelectXHas’学号',XMas'姓名',ZYMas'专业’,XBas’性别',”
+"CSSJas’出生日期',ZXFas'总学分’,BZas’备注'fromXSwhere1=1"+sql;
SqlConnectionconn=newSqlConnection(connStr);
SqlDataAdaptersda=newSqlDataAdapter(_sql,conn);
DataSetds=newDataSet();
sda。Fill(ds);
StuDGV.DataSource=ds。Tables[0]。DefaultView;
}
privatevoidstuZY_SelectedIndexChanged(objectsender,EventArgse)
{
}
}
}
5。3修改删除学生信息界面
控件说明:
该模块主要由一个groupBox(学生信息)
八个Label控件:分别设置属性名为学号,姓名,性别,出生年月,专业,总学分,备注和一个特别注意。
四个TextBox,分别可以输入学生的学号,姓名,专业,总学分然后可以进行更新和删除操作
一个ComboBox下拉列表选项菜单,作用为设置学生的出生日期。
一个ListBox,作用为显示学生备注
二个RadioButton控件,作用是设置学生的性别是男或女。
一个DataGridView,起到显示学生的各种信息的作用。
三个Button控件,其属性设置为更新,删除,取消。
学生增加修改删除学生信息的运行界面如图5-3所示。
图5-3添加修改删除学生信息界面
更新事件:
更新事件的作用是修改学生的信息,修改项为学号、姓名、性别,出生日期,专业、总学分,输入以上各项信息之后,在想修改的项目中输入想修改的内容,点击更新,就可以更新成功。
更新事件的源代码如下:
privatevoidstuUpdate_Click(objectsender,EventArgse)
{
stringconnStr=@”DataSource=.;database=XSCJ;IntegratedSecurity=True";
string_sql="selectcount(*)fromXSwhereXH='"+stuXH。Text+”'";
SqlConnectionconn=newSqlConnection(connStr);
SqlCommandcmd=newSqlCommand(_sql,conn);
try
{
conn.Open();
intcnt=(int)cmd.ExecuteScalar();
if(cnt==1)
{
_sql="updateXSsetXM='"+stuXM。Text+”',ZYM='"+
stuZY。Text+”',ZXF=”+
int。Parse(stuZXF。Text)+”,BZ=’"+stuBZ。Text+"’whereXH=’”+stuXH。Text+"’”;
}
else
{
stringsex=male。Checked?"男”:"女";
_sql=”insertintoXSvalues('"+stuXH.Text+"’,'"+stuXM.Text+"’,'"+stuZY.Text+"','"+
sex+"','"+stuCS.Text+”’,”+int。Parse(stuZXF.Text)+",’"+stuBZ.Text+”')”;
}
cmd=newSqlCommand(_sql,conn);
cmd.ExecuteNonQuery();
ModifyForm_Load(null,null);
}
finally
{
conn。Close();
}
}
}
}
删除事件:
删除事件的作用是删除学生的信息,删除事件的源代码如下:
privatevoidstuDelete_Click(objectsender,EventArgse)
{
stringconnStr=@"DataSource=。;database=XSCJ;IntegratedSecurity=True";
DialogResultret=MessageBox。Show(”确定要删除记录吗?","删除",MessageBoxButtons。OKCancel,MessageBoxIcon。Question);
if(ret==DialogResult。Cancel)return;
string_sql=”deletefromXSwhereXH=’”+stuXH。Text+"’";
SqlConnectionconn=newSqlConnection(connStr);
SqlCommandcmd=newSqlCommand(_sql,conn);
try
{
conn.Open();
introws=cmd.ExecuteNonQuery();
ModifyForm_Load(null,null);
if(rows==1)
{
MessageBox.Show(”删除成功!”,”提示”,MessageBoxButtons。OK,MessageBoxIcon.Information);
}
}
finally
{
conn。Close();
}
}
取消事件:
取消事件的作用是取消操作,它的代码如下:
privatevoidstuCancel_Click(objectsender,EventArgse)
{
this.Close();
}
5.4学生成绩录入界面
控件说明:
该模块主要由一个groupBox(学生成绩录入)
六个Label控件:分别设置属性名为专业,学号,课程名,姓名,成绩,学分。
三个TextBox,分别可以输入学生的姓名,成绩,学分然后可以进行插入和删除操作
三个ComboBox下拉列表选项菜单,作用为显示学生的专业,学号,课程名。
一个DataGridView,起到显示学生的各种信息的作用。
三个Button控件,其属性设置为插入,删除,取消。
学生成绩录入的运行界面如图5—4所示.
图5—4学生成绩录入界面
数据库连接操作代码如下:
privatevoidScoreForm_Load(objectsender,EventArgse)
{
stringconnStr=@"DataSource=.;database=XSCJ;IntegratedSecurity=True";
string_sql=”selectdistinctZYMfromXS”;
SqlConnectionconn=newSqlConnection(connStr);
SqlCommandcmd=newSqlCommand(_sql,conn);
try
{
conn。Open();
SqlDataReaderdr=cmd。ExecuteReader();
while(dr.Read())
{
stuZY.Items.Add(dr[0]);
}
dr.Close();
_sql="selectKCMfromKC”;
cmd=newSqlCommand(_sql,conn);
dr=cmd。ExecuteReader();
while(dr.Read())
{
stuKCM.Items。Add(dr[0]);
}
dr.Close();
}
finally{
conn.Close();
}
}
privatevoidstuZY_SelectedIndexChanged(objectsender,EventArgse)
{
stringconnStr=@"DataSource=。;database=XSCJ;IntegratedSecurity=True”;
string_sql=”selectXHfromXSwhereZYM='”+stuZY。Text+"'";
stuXH.Items.Clear();
SqlConnectionconn=newSqlConnection(connStr);
SqlCommandcmd=newSqlCommand(_sql,conn);
try
{
conn.Open();
SqlDataReaderdr=cmd.ExecuteReader();
while(dr。Read())
{
stuXH.Items.Add(dr[0]);
}
stuXH.SelectedIndex=0;
dr.Close();
_sql="selectXS.XHas'学号',XS.XMas’姓名',KC.KCMas'课程名',XS_KC.CJas'成绩',”
+”KC。XFas’学分',KC.XSas'学时',KC。KKXQas’开课学期'"
+"fromXS,KC,XS_KC”
+”whereXS.XH=XS_KC.XHandKC.KCH=XS_KC。KCHandXS。ZYM='"+stuZY.Text+"'";
SqlDataAdaptersda=newSqlDataAdapter(_sql,conn);
DataSetds=newDataSet();
sda。Fill(ds);
scoreDGV.DataSource=ds.Tables[0]。DefaultView;
}
finally
{
conn.Close();
}
}
StuZY(ComboBox1)事件的代码如下:
privatevoidstuZY_SelectedIndexChanged(objectsender,EventArgse)
{
stringconnStr=@”DataSource=。;database=XSCJ;IntegratedSecurity=True”;
string_sql="selectXHfromXSwhereZYM='”+stuZY。Text+”'”;
stuXH。Items.Clear();
SqlConnectionconn=newSqlConnection(connStr);
SqlCommandcmd=newSqlCommand(_sql,conn);
try
{
conn.Open();
SqlDataReaderdr=cmd.ExecuteReader();
while(dr.Read())
{
stuXH.Items.Add(dr[0]);
}
stuXH.SelectedIndex=0;
dr.Close();
_sql=”selectXS.XHas’学号',XS。XMas'姓名',KC.KCMas'课程名’,XS_KC.CJas'成绩',"
+”KC。XFas'学分',KC。XSas'学时’,KC。KKXQas'开课学期’”
+"fromXS,KC,XS_KC"
+"whereXS。XH=XS_KC.XHandKC.KCH=XS_KC.KCHandXS.ZYM='”+stuZY.Text+"’";
SqlDataAdaptersda=newSqlDataAdapter(_sql,conn);
DataSetds=newDataSet();
sda.Fill(ds);
scoreDGV.DataSource=ds。Tables[0].DefaultView;
}
finally
{
conn.Close();
}
}
StuXH(ComboBox2)事件的代码如下:
privatevoidstuXH_SelectedIndexChanged(objectsender,EventArgse)
{
stringconnStr=@"DataSource=.;database=XSCJ;IntegratedSecurity=True";
string_sql="selectXS.XHas'学号',XS.XMas’姓名',KC。KCMas’课程名',XS_KC.CJas'成绩’,”
+”KC.XFas'学分’,KC。XSas’学时',KC。KKXQas'开课学期’"
+"fromXS,KC,XS_KC”
+”whereXS_KC.XH='"+stuXH.Text+"’andXS_KC.XH=XS。XHandXS_KC。KCH=KC.KCH";
if(stuKCM。Text.Trim()!=string.Empty)
{
_sql+="andKC。KCM='"+stuKCM.Text+"'";
}
SqlConnectionconn=newSqlConnection(connStr);
SqlDataAdaptersda=newSqlDataAdapter(_sql,conn);
DataSetds=newDataSet();
sda。Fill(ds);
scoreDGV。DataSource=ds。Tables[0]。DefaultView;
}
StuKCM(ComboBox3)事件的代码如下:
privatevoidstuKCM_SelectedIndexChanged(objectsender,EventArgse)
{
stringconnStr=@"DataSource=.;database=XSCJ;IntegratedSecurity=True";
string_sql=”selectXS。XHas’学号’,XS.XMas'姓名',KC。KCMas’课程名’,XS_KC.CJas’成绩',”
+"KC.XFas’学分',KC.XSas'学时',KC.KKXQas’开课学期'”
+"fromXS,KC,XS_KC"
+”whereKC。KCM='"+stuKCM.Text+”'andXS_KC。XH=XS。XHandXS_KC.KCH=KC。KCH";
if(stuXH.Text.Trim()!=string。Empty)
{
_sql+=”andXS.XH='"+stuXH。Text+"’";
}
SqlConnectionconn=newSqlConnection(connStr);
SqlDataAdaptersda=newSqlDataAdapter(_sql,conn);
DataSetds=newDataSet();
sda。Fill(ds);
scoreDGV.DataSource=ds。Tables[0].DefaultView;
}
privatevoidupdate_Click(objectsender,EventArgse)
{
stringconnStr=@"DataSource=.;database=XSCJ;IntegratedSecurity=SSPI”;
string_sql=”selectcount(*)fromXS_KCwhereXS_KC.XH='”+stuXH。Text+”’andXS_KC.KCH=(selectKCHfromKCwhereKCM=’"+stuKCM.Text+"')”;
SqlConnectionconn=newSqlConnection(connStr);
SqlCommandcmd=newSqlCommand(_sql,conn);
try
{
conn.Open();
intcnt=(int)cmd。ExecuteScalar();
if(cnt==1)
{
_sql=”updateXS_KCsetXS_KC.CJ='”+stuCJ。Text+"’whereXS_KC.XH=’”+stuXH。Text+”’andXS_KC.KCH=(selectKCHfromKCwhereKCM='"+stuKCM.Text+”')”;
}
else
{
string_sql2="selectKCHfromKCwhereKCM='”+stuKCM.Text+”'”;
SqlCommandcmd2=newSqlCommand(_sql2,conn);
_sql=”insertintoXS_KCvalues('"+stuXH.Text.Trim()+"',”+cmd2.ExecuteScalar()+","+int.Parse(stuCJ.Text.Trim())+")";
}
cmd=newSqlCommand(_sql,conn);
cmd.ExecuteNonQuery();
}
finally
{
conn。Close();
}
}
插入事件:
插入事件的作用是修改学生的信息,修改项为专业、学号、课程名,姓名,成绩、学分,输入以上各项信息之后,在想修改的项目中输入想修改的内容,点击插入,就可以插入成功。
插入的源代码如下:
privatevoidupdate_Click(objectsender,EventArgse)
{
stringconnStr=@”DataSource=.;database=XSCJ;IntegratedSecurity=SSPI";
string_sql="selectcount(*)fromXS_KCwhereXS_KC.XH=’”+stuXH.Text+”’andXS_KC.KCH=(selectKCHfromKCwhereKCM='”+stuKCM.Text+"')”;
SqlConnectionconn=newSqlConnection(connStr);
SqlCommandcmd=newSqlCommand(_sql,conn);
tr
展开阅读全文