繁体   English   中英

ADO.NET并使用不同的数据库

[英]ADO.NET and working with different db

我需要实现从一个数据库读取数据并在其他两个数据库(Db2和Db3)中插入/更新数据。 所有数据库都是SQL Server。

现在,我使用下一个场景:

  • 打开连接并为我的源数据库启动事务。

    1.1打开连接并开始Db2的事务

    1.2插入/更新记录。

    1.3提交/回滚事务

    2.1打开连接并开始Db3的事务

    2.2插入/更新记录。

    2.3提交/回滚事务

  • 在源数据库中将记录标记为已导出。

  • 提交交易。

一切正常。 但是,如果我在1.2或2.2步骤中有异常,则当前事务将回滚,但其他步骤中的事务将保持提交状态。

如果步骤(1.2或2.2)例外,步骤1.3和2.3也将回滚,我该如何实现方案?

我无法对Db2和Db3使用一项交易,因为我有例外

事务与当前连接不关联或已完成。

有任何想法吗?

谢谢,

更新:我解决了我的问题:现在我使用下一种情况:

  • 打开连接并为我的源数据库启动事务。

    1.1打开连接并开始Db1的事务

    1.2打开连接并开始Db2的交易

    1.3在DB1中插入/更新

    1.4在DB2中插入/更新

    1.5 Db1的提交/回滚事务

    1.6 Db2的提交/回滚事务

  • 在源数据库中将记录标记为已导出。

  • 提交交易。

您可以使用TransactionScope类与单个分布式事务中的多个数据库进行交互。

using (TransactionScope scope = new TransactionScope())
{
  //put all logic here
  scope.Complete();
}

这是另一个例子

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM