VB.Net 使用 Oracle ODP.net 事务 read_committed 隔离 returns 首次调用后的原始值

VB.Net with Oracle ODP.net transaction with read_committed isolation returns original values after first call

我已经使用 VB.net 和 Oracle ODP.net

设置了隔离级别为 READ_COMMITTED 的事务

Dim OraTransaction As OracleTransaction = oraConnection.BeginTransaction(IsolationLevel.ReadCommitted)

它是在函数块中声明的,紧接着,一个 FOR 循环运行,其中有几个 Sub 调用在内部传递 Connection 对象的引用。在执行期间发出 Select 并且 Table 中的两个字段发生变化。

第一次迭代,Select 命令,使用 DataAdapter 对象,returns 按预期存储值。在执行期间,字段的值发生变化,然后我使用命令对象执行更新,但尚未提交。

当第二次迭代发出上述 Select 而不是更新值时,查询仍然 returns 原始值。

感谢您的帮助。

J.

寻找另一种方法来保存更改,我发现我用来从 Table 中提取数据的 Select 查询中存在错误。

如果我对 Table 执行更新命令,然后执行 Select 命令,它实际上 returns 更新的值。在Transaction完成前手动抛出异常时,回滚此时的所有更改,当Transaction完成时,它成功提交更改,这正是我想要实现的。