问题:
在数据操作中启用了事务
try
{
sqlconnection.Open();
transaction=sqlconnection.BeginTransaction();
sqlcommand1.ExecuteNonQuery();
sqlcommand2.ExecuteNonQuery();
transaction.Commit();
}
catch(SqlException e)
{
MessageBox.Show(e.Message);
transaction.Rollback();
}
如果在sqlconnection.Open时出现异常,transaction.Rollback()中执行会出现新的异常(transaction没赋值).
应该如何写try catch块呢
------解决方案--------------------
判断下是不是null就可以了。
------解决方案--------------------
- C# code
using (TransactionScope scope = new TransactionScope()) { //创建事物对象 try { //执行事务操作的相关代码 scope.Complete(); //提交事物 } catch (Exception ex) { throw ex; } //抛出异常 finally { scope.Dispose(); } //回滚事物 }
------解决方案--------------------
进入新的NET版本,请使用TransactionScope取代传统的事务模型。
------解决方案--------------------
------解决方案--------------------