【问题标题】:How to use sql transactions across asp.net c# web services如何跨asp.net c# web服务使用sql事务
【发布时间】:2015-11-05 01:10:01
【问题描述】:

我使用三种不同的 Web 服务方法将数据插入到三个不同的表中。起初我调用method1 将数据插入table1。 Method1 返回 table1 的主键。然后我将表的主键传递给method2和method3。这两种方法都将数据分别插入到 table2 和 table3 中。假设在向table3插入数据时发生异常我想回滚插入在table1和table2中的数据。我一个接一个地调用 Web 服务方法。我正在使用 asmx 网络服务。我搜索了很多以找到解决方案,但我设法找到的是单个方法调用中的回滚示例。是否可以跨 c# web 服务进行 sql 事务。请帮我解决这个问题。提前致谢

【问题讨论】:

  • 这是可能的 - 它被称为distributed transactions,但可能更容易调用单个 Web 服务方法,该方法在单个 SQL 事务中以原子方式修改所有 3 个表。

标签: c# sql-server web-services transactions


【解决方案1】:

如果没有看到您正在使用的应用程序,我真的不能肯定地说,但我觉得您的问题可能暴露了您系统中的设计缺陷。 SQL Server Distributed TransactionsWCF Transactions 可能会帮助您完成某些工作 我真的感受到 Justin 的评论,即通过一个 Web 服务调用来修改最佳解决方案中涉及的所有表。这使您的业务逻辑能够以原子方式处理事务。

【讨论】:

    【解决方案2】:

    尝试添加这两行

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

    【讨论】:

      猜你喜欢
      • 2012-08-27
      • 2013-06-23
      • 1970-01-01
      • 2012-09-14
      • 2016-08-04
      • 1970-01-01
      • 2012-02-11
      • 1970-01-01
      相关资源
      最近更新 更多