ADO.NET使用带参数方法实现添加、删除和修改数据
我们分析前面的插入、删除和更新操作,发现许多代码是重复的,这不符合代码重用和简洁的标准。下面在窗体中创建一个专门连接数据库的方法,将重复代码封装,实现代码重用。
//创建一个方法,执行数据库通用操作
private void GetData(string sql)
{
//创建Connection对象
string strcon = @"Data Source=(local)\sqlexpress;Initial Catalog=School;Integrated Security=True;Pooling=False";
SqlConnection con = new SqlConnection(strcon);
//创建Command对象
SqlCommand comm = new SqlCommand(sql, con);
try
{
//打开连接
con.Open();
//执行sql操作
if (comm.ExecuteNonQuery() > 0)
{
MessageBox.Show("操作成功");
}
else
MessageBox.Show("操作失败");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
con.Close();//关闭连接
}
}
上面代码创建了一个带参数的方法GetData(sql),sql语句作为参数,在增加,删除和更新按钮的Click事件中,分别定义各自的sql语句,即可实现相应的功能。
其代码分别如下:
private void btnAdd_Click(object sender, EventArgs e)
{
//添加新数据的SQL语句
string sql = "insert into Student values('"+this.txtName.Text.Trim()+"','"+this.cboSex.Text+"',"+Convert.ToInt32(this.txAge.Text)+",'"+this.cboClass.Text+"')";
//调用通用方法执行
GetData(sql);
// 启用id的文本框
this.txtId.Enabled = true;
this.btnDelete.Enabled = true;
this.btnModify.Enabled = true;
this.txAge.Text = "";
this.txtName.Text = "";
}
private void btnExit_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void btnDelete_Click(object sender, EventArgs e)
{
//删除数据的SQL语句
string sql = "delete from Student where id="+Convert.ToInt32(this.txtId.Text)+"";
//调用通用方法执行
GetData(sql);
}
private void btnModify_Click(object sender, EventArgs e)
{
//添加更新数据的SQL语句
string sql = "update Student set sname='"+this.txtName.Text+"',ssex='"+this.cboSex.Text+"',sage="+Convert.ToInt32(this.txAge.Text)+",sclassid='"+this.cboClass.Text+"' where id="+Convert.ToInt32(this.txtId.Text)+"";
//调用通用方法执行
GetData(sql);
}
说明:连接数据库时,也可采用Windows集成的方式登录,连接字符串为:
string strcon = @"Data Source=(local)\sqlexpress;Initial Catalog=School;Integrated Security=True;Pooling=False";