在TransactionScope中连续两次更新OracleDataAdapter
本文关键字:两次 更新 OracleDataAdapter TransactionScope 连续 | 更新日期: 2023-09-27 18:14:31
我需要执行一些插入指令从一个类型化数据集到一组表在我的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到表2的关系的接受/拒绝规则从Cascade到None。
-
我已经设置了UpdatedRowSource为Both