如何检查 dotnet 事务是否已关闭?
问问题
3956 次
3 回答
3
你的标题问一件事,你的问题问另一件事。所以,我会用你的标题。
如果您想知道事务是回滚还是设置为仅回滚,您可以检查
transaction.WasRolledBack // true if transaction is rolled back
这里transaction
是 ITransaction 的一个实例
编辑(根据您的评论):
var isRolledBack = false;
using (var connection = new SqlConnection())
{
using (var transaction = connection.BeginTransaction())
{
try
{
// do your stuff here with transaction
}
catch (Exception ex)
{
transaction.Rollback();
isRolledBack = true;
throw;
}
}
}
现在,您可以检查isRolledBack
标志以查看事务是否回滚
于 2010-12-16T00:25:00.813 回答
1
using(TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew)){
try{
//Do something;
scope.Complete(); //denotes the transaction completed successful.
}
catch(TransactionAbortedException ex)
{
//scope.Complete(); is never called, the transaction rolls back automatically.
}
catch(ApplicationException ex)
{
}
}
于 2010-12-16T00:32:56.263 回答
0
如果您在 SQL Server 上,则可以使用DBCC OPENTRAN
于 2010-12-16T00:16:40.710 回答