程序中使用事务来管理sql语句的执行,执行失败时,可以达到回滚的要求。

1、设置使用事务的SQL执行语句

 1         /// <summary>
 2         /// 使用有事务的SQL语句
 3         /// </summary>
 4         /// <param name="sql"></param>
 5         /// <param name="conn"></param>
 6         /// <param name="tran"></param>
 7         /// <returns></returns>
 8         public int Execsql(string sql,SqlConnection conn,SqlTransaction tran)
 9         {
10             OpenConn(conn);
11             SqlCommand cmd = new SqlCommand(sql, conn);
12             cmd.Transaction = tran;
13             int i = cmd.ExecuteNonQuery();
14             Console.WriteLine(string.Format("执行带事务:影响: {0}行; 语句:{1}", i, sql));
15             return i;
16         }

2、在程序中调用

 1 using(SqlTransaction tran = conn.BeginTransaction())
 2             {
 3                 try
 4                 {
 5                     if (dgvMast.CurrentRow != null)
 6                     {
 7                         Program.DB.Execsql(sqlSub1, conn, tran);  
program.DB.Execsql(sqlSub2, conn, tran);
14 tran.Commit();//事务提交 15 } 16 } 17 catch(Exception ex)//对异常处理 18 { 19 tran.Rollback();//异常时候,事务回滚 20 MessageBox.Show(ex.Message,MessageBoxButtons.OK, MessageBoxIcon.Error); 21 } 22 23 }

可以到要求sql语句执行的一致性.

posted @ 2014-06-07 09:16  林海云  阅读(897)  评论(0编辑  收藏  举报