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语句执行的一致性.