///<summary> ///.net万能事务 ///</summary> ///<param name="cmdtext1">第一个存储过程或者sql语句;</param> ///<param name="cmdtext2">第二个存储过程或者sql语句;</param> ///<param name="para1">第一个存储过程或者sql的参数</param> ///<param name="para2">第二个存储过程或者sql的参数</param> ///<param name="ct1">第一个参数的类型(存储过程或者sql)</param> ///<param name="ct2">第二个参数的类型(存储过程或者sql)</param> public static int procAffairs(string cmdtext1, string cmdtext2, SqlParameter[] para1, SqlParameter[] para2, CommandType ct1,CommandType ct2) { using (SqlConnection conn = GetConnection()) { SqlTransaction tran; //SqlCommand cmd; SqlCommand cmd = new SqlCommand(); try { conn.Open(); tran = conn.BeginTransaction(); cmd.Transaction = tran; cmd.Connection = conn; //cmd = new SqlCommand(cmdtext1, conn); cmd.CommandText = cmdtext1; cmd.CommandType = ct1; cmd.Parameters.AddRange(para1); cmd.ExecuteNonQuery(); //cmd = new SqlCommand(cmdtext2, conn); cmd.CommandText = cmdtext2; cmd.CommandType = ct2; cmd.Parameters.AddRange(para2); cmd.ExecuteNonQuery(); cmd = new SqlCommand(); tran.Commit(); } catch (Exception ex) { tran.Rollback(); return 0; } } return 1; }
5 回答
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
事务倒没有什么问题,倒是你的conn在出异常和结束都没有关闭吧。(唯一可能有问题的是同一个cmd 一个事务 却分两次执行两个不同的CommandText ,这个测试一下没问题就应该没问题了)
- 5 回答
- 0 关注
- 396 浏览
添加回答
举报
0/150
提交
取消