在TransactionScope中连续两次更新OracleDataAdapter

时间:2013-05-20 14:14:58

标签: c# .net-2.0 odp.net

我需要从类型化的DataSet中执行一些插入指令到我的Oracle DB中的一组表

我做的事情如下:

OracleDataAdapter da1 = new OracleDataAdapter();
da1.InsertCommand = previouslyInitializedCommand;

OracleDataAdapter da2 = new OracleDataAdapter();
da2.InsertCommand = anotherCommand()
...
using (TransactionScope ts = new TransactionScope())
using (OracleConnecction conn = new OracleConnection(connString))
{
    da1.InsertCommand.Connection = conn;
    da2.InsertCommand.Connection = conn;

    da1.Update(dataset.Table1);
    da2.Update(dataset.Table2);

    ts.Complete();
}

第二次更新永远不会发生,因为第一次更新将Table2的行状态更改为“未修改”。谁知道为什么会这样?

1 个答案:

答案 0 :(得分:1)

现在它有效......

我做了两件事:

  1. 从数据集设计器更改了将Table1与Table2从Cascade链接到None的关系的接受/拒绝规则。

  2. 我已将UpdatedRowSource设置为Both。