在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如果添加成功放回1int count=cmd.ExecuteNonQuery();if (count > 0){MessageBox.Show("成功");//事务提交trans.Commit();}else {MessageBox.Show("失败");//事务回滚trans.Rollback();}}catch (Exception){//如果某个环节出现问题,则将整个事务回滚trans.Rollback();}