如何回滚语句,如果一个失败

本文关键字:一个 失败 何回滚 语句 如果 | 更新日期: 2023-09-27 18:05:58

在c#中,我在一个方法中有三个语句将数据插入数据库。第一个语句插入,我从中得到一个ID。这个ID将在接下来的两个语句中使用。

我有两种情况要处理:

1)。如果不满足某些输入条件,第二条语句可以返回false。在这种情况下,我想回滚第一条语句。
2.) 如果其中任何一条语句产生错误,它们都应该回滚。

我想把所有三个语句包装在一个事务作用域中,但它只会在异常时回滚,这只涵盖了第二种情况。处理这两种情况的最佳方法是什么?

我正在使用DataContext通过一个DBML与LINQ 2 SQL

如何回滚语句,如果一个失败

对于TransactionScope(),您需要调用Complete()方法来提交更改。否则,所有挂起的更改都将回滚,因此您的(1)也将被覆盖

看看我发布的链接。手动回滚事务非常简单

如何在。net中提交和回滚事务

它的要点是,在您拥有事务对象之后,您可以在其上调用RollBack()

对于LINQ - to - SQL,请查看如何:使用transaction (LINQ - to - SQL)将数据提交加括号

您可以使用RAISERROR语句,使用正确的严重级别(我认为应该是18)来"抛出异常",并导致事务在用户检查的条件下回滚。

显然,这只会回滚同一事务范围内的任何内容。

相关文章: