C#应用实训|任务2 添加、删除学生信息
发布者:唯众
布时间:2020-12-21 14:16:10
点击量:
任务描述
单击主窗体菜单的添加、删除学生信息菜单,分别实现对学生信息的添加和删除功能,如果添加成功,则弹出“学生信息添加成功!”消息框,单击该窗体“关闭”按钮,关闭该窗体;删除学生信息时,如果输入的学号存在,则删除该记录,并弹出“删除成功!”消息框,如果输入的学号不存在,则弹出“学号不存在,无法删除!”消息框,单击该窗体“关闭”按钮,关闭该窗体。
知识引入
- 执行SQL语句(Command)
我们可以使用Command对象允许向数据库传递SQL脚本,以便检索和操作数据库中的数据。表8-3列出了.NET数据提供程序及其相应的命令类。
表8-3 .NET数据提供程序及相应的命令类
数据提供程序 |
命令类 |
SQL数据提供程序 |
SqlCommand |
OLE DB数据提供程序 |
OleDbCommand |
Oracle数据提供程序 |
OracleCommand |
ODBC数据提供程序 |
OdbcCommand |
与数据库建立连接之后,可以使用Command对象执行命令并从数据源返回结果,例如对数据库执行T-SQL命令或存储过程。为了与数据库连接连接并执行命令,需要以gCommand对象的实例
表8-4列出了Command对象的常用属性和方法
表8-4 Command对象的常用属性和方法
属 性 |
说 明 |
CommandText |
表示Command对象将执行的SQL语句或存储过程 |
CommandType |
表示Command对象的命令类型,包括StoreProcedure、Text和TableDirect。其中:StoreProcedure表示执行T-SQL存储过程,Text表示执行T-SQL语句 |
Connection |
表示Command对象使用的活动连接 |
方 法 |
说 明 |
ExecuteNonQuery |
用于Command对象执行T-SQL的语句,对数据库的单项操作,如UPDATE,INSERT,DELETE。返回影响的行数 |
ExecuteReader |
用于Command对象执行T-SQL的语句,对数据库的查询操作,赶回一个DataReader对象。 |
任务实现
添加、删除学生信息。
- 设计添加学生信息窗体(AddStudInfo.cs),效果如图8-3所示,窗体后台程序代码如下:
private void btnAdd_Click(object sender, EventArgs e)
{
//数据库连接字符串
string strConn = "server = .;uid = sa;pwd = 123456ab78;database = studentDB";
//连接数据库
SqlConnection sqlConn = new SqlConnection(strConn);
/**************获取用户在界面上输入的数据*************/
string stuId = txtStuId.Text;
string stuName = txtStuName.Text;
string stuBirthday = dtpBirthday.Value.ToString();
string stuSex = cmbSex.Text;
string stuAddress = txtStuAddress.Text;
/***************** 执行SQL语句 ***************/
string strsql = string.Format("insert into student values('{0}','{1}','{2}','{3}','{4}')",stuId,stuName,stuSex,stuBirthday,stuAddress);
//创建命令对象,执行SQL语句
SqlCommand cmd = new SqlCommand(strsql,sqlConn);
//执行SQL语句
try
{
sqlConn.Open();
int n = cmd.ExecuteNonQuery(); //执行SQL语句,得到受影响的行数
if (n > 0)
{
MessageBox.Show("学生信息添加成功!");
}
else
{
MessageBox.Show("学生信息添加失败!");
}
}catch(Exception ex)
{
MessageBox.Show("出现异常,原因:\n" + ex);
}finally
{
sqlConn.Close();
}
}
【
例8-3】
关闭按钮单击事件代码如下:
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
- 设计删除学生信息窗体(DelStudInfo.cs),效果如图8-5所示,窗体后台程序代码如下:
【
例8-4】
private void btnDel_Click(object sender, EventArgs e)
{
//获取界面要删除的学号
string stuID = txtStuId.Text;
//数据库连接字符串
string strConn = "server = .;uid = sa;pwd = 123456ab78;database = studentDB";
//连接数据库
SqlConnection sqlConn = new SqlConnection(strConn);
//写SQL语句
string strSql = string.Format("delete from student where stuID = '{0}'",stuID);
//创建命令对象
SqlCommand sqlCmd = new SqlCommand(strSql,sqlConn);
//执行SQL语句
try
{
sqlConn.Open();
int n = sqlCmd.ExecuteNonQuery();
if (n > 0)
{
MessageBox.Show("删除成功!");
}
else
{
MessageBox.Show("学号不存在,无法删除!");
}
}
catch (Exception ex)
{
MessageBox.Show("出现异常,原因:\n" + ex);
}
finally
{
sqlConn.Close();
}
}
【
例8-5】
关闭按钮单击事件代码如下:
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
任务小结
- Command 对象允许向数据库传递请求、检索和操纵数据库中的数据。
- 用于查询的Command和用于执行非查询的Command在使用上的异同。
上一篇:C#应用实训|任务1 连接数据库
下一篇:C#应用实训|任务3 查询、修改学生信息