我有一个在 COM+ 中运行的方法,它看起来有点像以下:
[AutoComplete(true)]
public bool DoSomething(string args)
{
DoSomeDBWork(args);
try {
DBAccess.RunQuery("INSERT fail");
return 0;
}
catch (Exception ex)
{
//Hide the error because it doesnt matter - log it out though for completeness
DBAccess.RunQuery("INSERT INTO Log VALUES ('{0}')", ex.ToString());
return -1
}
}
OK 所以方法运行,DoSomeDBWork() 方法运行,对数据库进行一些更新。
“插入失败”运行,但失败。我只想忽略它,但注销它已失败。
但是我收到了一个错误:System.Transactions.TransactionException:该操作对事务的状态无效。
我假设即使我捕获了异常,因为它是一个数据库错误,它会自动回滚事务。
该错误来自“插入日志...”行
,并且在 DoSomeDBWork() 中更新的所有内容也都被回滚。
如何忽略失败的行?