在C#中开启事务的步骤
一、调用SqlConnection对象的BeginTransaction()方法,创建一个SqlTransaction对象,标志事务开始。
二、将创建的SqlTransaction对象分配给要执行的SqlCommand的Transaction属性。
三、调用相应的方法执行SqlCommand命令。
四、调用SqlTransaction的Commit()方法完成事务。或调用Rollback()方法终止事务。
需要注意的点
一、在调用BeginTransaction()方法开始事务之前,要打开数据库连接,否则出现异常。
二、如果在事务的Commit()方法或RollBack()方法执行前数据库连接断开或关闭,则事务将回滚。
示例代码
//准备连接字符串
string str = "data source=.;initial catalog=Myschool;uid=sa;pwd=123";
//创建数据库连接对象
SqlConnection con = new SqlConnection(str);
//sql语句:添加一条记录到年级表
string sql = "insert into grade values(@gradename)";
//创建SqlParameter对象,设置参数
SqlParameter sp = new SqlParameter("@gradename", txtgradename.Text);
//创建命令对象
SqlCommand cmd = new SqlCommand(sql, con);
//通过Parameter集合的add()方法天填充参数集合
cmd.Parameters.Add(sp);
//打开连接
con.Open();
//默认让SqlTransaction对象为空
SqlTransaction trans = null;
//开启事务:标志事务的开始
trans = con.BeginTransaction();
try
{
//将创建的SqlTransaction对象分配给要执行的sqlCommand的Transaction属性
cmd.Transaction = trans;
//执行sql如果添加成功放回1
int count=cmd.ExecuteNonQuery();
if (count > 0)
{
MessageBox.Show("成功");
//事务提交
trans.Commit();
}
else
{
MessageBox.Show("失败");
//事务回滚
trans.Rollback();
}
}
catch (Exception)
{
//如果某个环节出现问题,则将整个事务回滚
trans.Rollback();
}
|
请发表评论