我已经使用VB.net和Oracle ODP.net设置了隔离级别为READ_COMMITTED的事务
将OraTransaction设为OracleTransaction = oraConnection.BeginTransaction(IsolationLevel.ReadCommitted)
在Function块中声明它,然后紧接着,一个FOR循环与传递Connection对象引用的内部几个Sub调用一起运行。在执行过程中,将发出Select,并且该表中的两个字段会更改。
使用DataAdapter对象的第一个迭代,即Select命令,将按预期返回存储的值。在执行期间,字段的值会更改,然后我使用Command对象执行更新,但尚未提交。
当第二次迭代发布上述Select时,查询仍会返回原始值,而不是更新的值。
感谢您的帮助。
J。
答案 0 :(得分:0)
寻找另一种保留更改的方法,我发现我用来从表中提取数据的Select查询中存在错误。
如果我对表执行更新命令,然后执行选择命令,则实际上返回更新后的值。当在事务完成之前手动引发异常时,所有的更改都将回滚,而在事务完成时,它将成功提交更改,这正是我想要实现的。