【问题标题】:ODP.Net Managed Driver Ignoring Transaction RollbackODP.Net 托管驱动程序忽略事务回滚
【发布时间】:2015-10-07 20:58:15
【问题描述】:

我正在用 Oracle 的托管驱动程序替换我们较旧的非托管 ODP 驱动程序,并且我发现我的事务正在提交,即使显式回滚或未提交也是如此。

var conn = new OracleConnection(...);
conn.Open();
var trans = conn.BeginTransaction();
var cmd = conn.CreateCommand();
cmd.ExecuteNonQuery(...);
trans.Rollback();
conn.Close();

在这种情况下,一旦代码停止运行,我的插入就会提交。

我错过了什么?

【问题讨论】:

  • 无法复制; Oracle.ManagedDataAccess,版本=4.121.2.0;连接有方法 CreateCommand,而不是 GetCommand。
  • 抱歉,在手机上从记忆中打出来的 - 已编辑。

标签: c# oracle odp.net-managed


【解决方案1】:

创建后尝试为命令指定打开的事务 -

var cmd = conn.CreateCommand();
cmd.Transaction = trans;        // <----

【讨论】:

  • 感谢您的建议,但这无论如何都会隐含地发生。只是为了确定,我试过了,但没有效果。
猜你喜欢
  • 2013-07-09
  • 2018-12-17
  • 1970-01-01
  • 2018-07-11
  • 1970-01-01
  • 1970-01-01
  • 2014-04-23
  • 2015-01-23
  • 1970-01-01
相关资源
最近更新 更多