2014-09-20 52 views
1

首先,我花了幾個小時尋找修復 - 也許我只是需要另一雙眼睛在這個問題上。Mysql連接器 - MultipleActiveResultSets問題

我目前正在爲自己編寫一個c#應用程序(個人使用)。進出口運行最新的MySQL連接庫從mysql.com

我的連接字符串是

public string SQLConnection = "Server=localhost;Database=data;Uid=root;Pwd=ascent;charset=utf8;MultipleActiveResultSets=True;"; 

我的問題是關於MultipleActiveResultSets=True;。當這包含在我的SQLConnection字符串中時,MySQL庫無法連接。查看下面的PIC來查看我的發現

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 - 但這是無法更改的。

如果有人知道爲什麼這是失敗的,那麼請建議您的修復。

我的本地MySQL服務器版本:5.6.17

+0

在try塊中放置創建連接的地方。這就是它似乎下降的地方,所以你想要捕捉拋出的異常。這可能會告訴你什麼是錯的。 – AVee 2014-09-20 23:04:59

回答

0

這個問題不解決,但我發現周圍的工作。

我從連接字符串中刪除MultipleActiveResultSets=True;。然後我創建了一個從MySqlDataReader保存數據的列表,然後關閉閱讀器並重新打開一個新列表,然後從數據庫中獲取其餘數據。然後簡單地將結果合併到列表中。

所以是的,一個臨時修復。

如果有人知道正確的修復方法,那麼請評論,否則我將使用我的臨時修復。

謝謝你們。

8

我假設MySql連接器不支持MARS(多個活動結果集)。在這種情況下,你不能同時在多個地方使用它。

+2

我剛剛花了上週才知道MySQL線協議,我可以確認這是正確的; MySQL將無法支持多個活動結果集。您需要將數據緩衝到列表中,然後執行另一個查詢或打開第二個連接。 – 2015-12-12 13:04:21

0

另一個可能導致性能下降但可用作快速修復的選項是爲第二個閱讀器打開另一個連接到數據庫的連接,並在完成時關閉它。