C# 回滚Sql Server 2008查询

C# 回滚Sql Server 2008查询,c#,asp.net,sql-server-2008,rollback,C#,Asp.net,Sql Server 2008,Rollback,我使用两个存储过程将值插入到两个表中,并且两个表中的数据彼此链接,因此我希望如果第二个存储过程中出现任何错误,则通过第一个存储过程输入的数据应该回滚 我使用Sql server 2008作为后端,使用ASP.net c作为前端使用需要使用TransactionScope,如下所示 当发生异常时,控件将退出使用,因此事务将回滚如果您使用的是实体框架,则可以使用它 using (var dataContext = new SchoolMSDbContext()) { using (var tr

我使用两个存储过程将值插入到两个表中,并且两个表中的数据彼此链接,因此我希望如果第二个存储过程中出现任何错误,则通过第一个存储过程输入的数据应该回滚

我使用Sql server 2008作为后端,使用ASP.net c作为前端

使用需要使用TransactionScope,如下所示


当发生异常时,控件将退出使用,因此事务将回滚

如果您使用的是实体框架,则可以使用它

using (var  dataContext = new SchoolMSDbContext())
{
  using (var trans = dataContext.Database.BeginTransaction(IsolationLevel.ReadCommitted))
  {
    try
    {
      // your query
      trans.Commit();
    }
    catch (Exception ex)
    {
      trans.Rollback();
      Console.WriteLine(ex.InnerException);
    }
  }
}
或者你可以试试这个

 using (var dataContext = new SchoolMSDbContext())
                {
                    using (var transaction = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                    {
                        try
                        {
                            //your query
                            transaction.Complete();

                        }
                        catch (Exception ex)
                        {
                            transaction.Dispose();
                            Console.WriteLine(ex.InnerException);
                        }
                    }
                }

对于这一点,您必须参考此参考资料

System.Transactions
有关更多信息,请查看此链接

请解释为什么我们使用“TransactionScopeAsyncFlowOption.Enabled”这个参数。Thnxx@reza,它真的很有帮助me@AkhilRJ不客气,您可以通过单击问题旁边的向上箭头来向上投票帮助您的帖子,也可以通过单击问题旁边的勾号来标记答案,以帮助其他人找到正确的答案,以防他们有相同的问题
System.Transactions