vb.net - 带有 read_committed 隔离的 Oracle ODP.net 事务的 VB.Net 在第一次调用后返回原始值
问题描述
我已经使用 VB.net 和 Oracle ODP.net 设置了一个隔离级别为 READ_COMMITTED 的事务
暗淡 OraTransaction 作为 OracleTransaction = oraConnection.BeginTransaction(IsolationLevel.ReadCommitted)
它在 Function 块中声明,紧接着,一个 FOR 循环运行,其中有几个 Sub 调用在传递 Connection 对象的引用。在执行期间,会发出一个 Select 并更改该表中的两个字段。
第一次迭代,Select 命令,使用 DataAdapter 对象,按预期返回存储的值。在执行期间,字段的值会发生变化,然后我使用 Command 对象执行更新,但尚未提交。
当第二次迭代发出上述选择时,查询仍然返回原始值,而不是更新值。
感谢您的帮助。
J。
解决方案
在寻找另一种方式来持久化更改时,我发现我用来从表中提取数据的 Select 查询中存在错误。
如果我对表执行更新命令,然后执行选择命令,它实际上会返回更新的值。在事务完成之前手动抛出异常时,此时的所有更改都会回滚,并且当事务完成时,它会成功提交更改,这正是我想要实现的。
推荐阅读
- typescript - 有没有办法跳过类型检查以加快 TypeScript 编译速度?
- javascript - 无法使用 jquery 为特定 H1 标签应用 css
- javascript - 在另一个 JS 文件中调用全局函数。我如何让“这个”工作?
- javascript - 如何使用 html 表单来“修补”数据库?
- machine-learning - 使用标记+预测数据重新训练生产模型?
- android - Firebase 动态链接工作但不显示图像 Android
- javascript - 如何在 React 中包装在 GraphQL 突变组件中的按钮上有多个 onClick 事件
- php - DDD - 聚合 - 真的应该避免 getter 吗?
- python - 从 Morningstar / BeautifulSoup 获取股票价格
- clojure - 如何从列表中删除运算符符号,例如 + - / *