2010-06-21 134 views
2

事务在提交并且连接关闭后可以回滚吗?事务在提交并且连接关闭后可以回滚吗?

finally 
    { 
     // Commit the transaction. 
     sqlTran.Commit(); 

     reader.Close(); 
     reader.Dispose(); 

     conn.Close(); 
     conn.Dispose(); 
    } 

我想给用户哎呀的选择!将它卷回。所以如果提交它可以回滚?

+1

你知道“commit”这个词的意思了吧? http://dictionary.reference.com/browse/commit:P提交一份交易说:“这就是我想要做的,是的,我确定...做到这一点!”以后你不会站起来改变主意。 – cHao 2012-09-21 16:13:35

回答

5

如果您希望事务在提交后保持不变,则已提交的事务永远不会回滚。

您是否在寻找savepoints

3

那么,如果它承诺,它承诺。没有回滚。 如果你想成为一个非常笨的用户,建立一个定时器并在延迟之后提交,让用户选择回滚一段时间。

+2

此解决方案可能存在一些问题。例如,如果您的系统在定时器启动之前断电,会发生什么情况?用户将假定交易已提交,实际上它将被回滚。 – DarLom 2010-06-21 12:01:26

0

如果你把你的 '糟糕!'在适当的情况下,你应该能够做到你需要的东西。

另外,看看nested transactions,也许这将更适合您的情况。

最后,Tobias指出有save points

相关问题