簡體   English   中英

已經是一個具有此連接的開放DataReader

[英]Already an open DataReader with this connection

所以基本上我在我的應用程序中有兩個連接:

conn = new MySqlConnection("server=" + ip + ";uid=" + user +";pwd=" + pass + ";database=" + db);
readconn = new MySqlConnection("server=" + ip + ";uid=" + user + ";pwd=" + pass + ";database=" + db);

我只將conn用於執行語句,例如UPDATE和INSERT。 然后,只有當有人加入處理SELECT語句的服務器時,才使用readconn

然后發生這個錯誤似乎沒有模式,除了它每次都是由相同的函數引起(它對conn連接上的事務執行INSERT查詢)。

There is already an open DataReader associated with this Connection which must be closed first.

我不明白的是,這個堆棧跟蹤顯示這個錯誤發生在使用conn而不是readconn的函數中。 conn上,永遠不會有與DataReader相關聯的DataReader。 它幾乎就像只有一個連接,但這就是為什么我專門打開兩個不同的連接,一個用於讀取,一個用於插入。

任何幫助或建議將不勝感激,也許我只是錯過了這里顯而易見的事情。

您需要使用conn.Close()關閉連接。

或者更好,使用類似的東西:

using (MySqlConnection conn = new MySqlConnection(connectionString))
{
//Your code
}

using (MySqlConnection readConn = new MySqlConnection(connectionString))
{
//Your code
}

它將自動關閉連接;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM