无法从MySql / .net连接器中的同一会话中读取未提交的数据

时间:2008-12-15 22:49:37

标签: asp.net mysql transactions

我一直用这个撞在墙上,也许有人可以对可能造成这种行为的事情有所了解。

我有一个asp.net(2.0)应用程序,有点可以:

使用(TransactionScope scope = new TransactionScope(...)) {

// ...做一些查询

的insertOrder();

InsertOrderDetails();

//做更多的逻辑和查询

ReadOrder(); //读取新插入的订单确定

ReadOrderDetails(); //这里有问题,我无法阅读新插入的详细信息

//做更多插入......

scope.Complete();

}

更多联系信息:

  • MySql5.0.27社区
  • MySql / net connector 5.2.3
  • Order和OrderDetails是具有FK约束的InnoDB
  • 已启用轮询(虽然我已尝试关闭轮询并具有相同的行为)
  • 我已尝试在事务中设置不同的隔离级别,以防万一有相同的行为,但这是相同的连接所以它应该无关紧要吗?

任何人对可能导致此事的原因有什么想法?

非常感谢任何帮助

的Jaime

2 个答案:

答案 0 :(得分:1)

我的猜测是,您正在调用的不同函数正在拾取不同的连接,因此他们看不到事务中未提交的更改。

检查此方法的一种方法是获取连接ID并进行比较。

答案 1 :(得分:0)

我实际上是在做一个愚蠢的事情,查询阻止它返回任何结果......与事务或MySql没什么关系