事物回滚的问题
- C# code
using (SqlConnection Conn = new SqlConnection(connectString)) { Conn.Open(); using (SqlTransaction Tran = Conn.BeginTransaction()) { using (SqlCommand Comm = new SqlCommand() { Connection = Conn, Transaction = Tran }) { try { Comm.CommandType = CommandType.StoredProcedure; Comm.CommandText = "存储过程1"; Comm.Parameters.AddRange(MaParas(order)); Comm.ExecuteNonQuery(); Comm.CommandType = CommandType.StoredProcedure; Comm.CommandText = "存储过程2"; for (int i = 0; i < ModelList.Count; i++) { Comm.Parameters.Clear(); Comm.Parameters.AddRange(LbParas(ModelList[i])); Comm.ExecuteNonQuery(); } Tran.Commit(); } catch (Exception ex) { Tran.Rollback(); } } } }
我想问,当在“存储过程2”出现错误的时候,怎么回滚“存储过程1”的操作呢
[解决办法]
你不是已经写好了吗?
[解决办法]
SqlTransaction Tran = Conn.BeginTransaction()
已经开启事务.
自动回滚
如果两存储过程参数差不多,可放在一起更好