关于try catch的问题
问题:
在数据操作中启用了事务
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取代传统的事务模型。
------解决方案--------------------
------解决方案--------------------