首先,我花了好几个小时寻找修复 - 也许我只需要另外一双眼睛来解决这个问题。
我目前正为自己编写c#应用程序(个人使用)。我从mysql.com运行最新的MySQL连接器库
我的连接字符串是
public string SQLConnection = "Server=localhost;Database=data;Uid=root;Pwd=ascent;charset=utf8;MultipleActiveResultSets=True;";
我的问题是关于MultipleActiveResultSets=True;
。当它包含在我的SQLConnection字符串中时,MySQL库无法连接。查看下面的图片以查看我的发现
http://i62.tinypic.com/25a57p1.png 完整图片:http://i62.tinypic.com/25a57p1.png
从连接字符串中删除MultipleActiveResultSets=True;
时,我得到此结果
http://i58.tinypic.com/2useaom.png 完整图片:http://i58.tinypic.com/2useaom.png
我获得了成功的连接。
MultipleActiveResultSets
的原因是因为我同时使用了2 MySqlDataReader
- 但这无法改变。
如果有人知道为什么会失败,那么请建议您修复。
My local MySQL server version:5.6.17
答案 0 :(得分:10)
我假设MySql连接器不支持MARS(多个活动结果集)。在这种情况下,您不能同时在多个地方使用它。
答案 1 :(得分:0)
问题没有解决,但我找到了解决办法。
我从连接字符串中删除了MultipleActiveResultSets=True;
。然后我创建了一个列表,我从MySqlDataReader中保存了数据,然后我关闭了读取器并重新打开了一个新的,然后我从数据库中获取了其余的数据。然后简单地将结果合并到列表中。
所以是的,临时修复。
如果有人知道正确的解决方案,那么请评论,否则我将使用我的临时解决方案。
谢谢你们。
答案 2 :(得分:0)
另一个可以导致性能下降但可用作快速修复的选项是为第二个阅读器再打开一个数据库连接,并在完成后将其关闭。