. net中的应用程序崩溃和事务

本文关键字:事务 崩溃 应用程序 net | 更新日期: 2023-09-27 18:07:02

假设我有一个处理转账的应用程序。

try {
    transaction.Commit();
}  catch {
    transaction.Rollback();
}

现在,如果必须取消提交,并且由于某种原因,程序在取消或回滚处理之前崩溃了,会发生什么?我如何编写我的应用程序,使它能够健壮地应对程序崩溃?

编辑:

如果我没有SQL后端,并且事务是我自己实现的,该怎么办?

. net中的应用程序崩溃和事务

只有在 Commit成功后才能实现数据库中的数据持久化。因此,如果您的Commit在任何位置失败,数据将不会写入db。

你的设计很好(即使非常简约,没有真正的例子在里面…)

你可以想象,一旦你调用var transaction = connection.BeginTransaction();

如果你不调用commit,事务将不会被提交,所以catch会回滚它。

如果由于任何原因导致崩溃阻止了catch块的执行,SQL引擎将应用自动回滚