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