C# 事务的创建,提交和回滚

匿名 (未验证) 提交于 2019-12-03 00:03:02

在C#中开启事务的步骤

01.调用SqlConnection对象的BeginTransaction()方法,创建一个SqlTransaction对象,标志事务开始。

02.将创建的SqlTransaction对象分配给要执行的SqlCommand的Transaction属性。

03.调用相应的方法执行SqlCommand命令。

04.调用SqlTransaction的Commit()方法完成事务。或调用Rollback()方法终止事务。  

4.在进行事务操作中的注意点

01.在调用BeginTransaction()方法开始事务之前,要打开数据库连接,否则出现异常。

02.如果在事务的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();             }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!