2010-04-01 100 views
0
MySqlCommand command = connection.CreateCommand(); 
command.CommandText = string.Format("SELECT * FROM characters WHERE account_id = '{0}'", this.ID); 
MySqlDataReader reader = command.ExecuteReader(); 

while (reader.Read()) { ... } 

我在最後一行說「讀取器關閉時讀取無效嘗試」時出現錯誤。 現在,如果我之前另起一行,如:矛盾的MySqlReader錯誤

MySqlCommand command = connection.CreateCommand(); 
command.CommandText = string.Format("SELECT * FROM characters WHERE account_id = '{0}'", this.ID); 
MySqlDataReader reader = command.ExecuteReader(); 
reader = command.ExecuteReader(); // Here. 

while (reader.Read()) { ... } 

我會在新線的錯誤說「已經有與此連接必須先關閉相關聯的打開的DataReader。」

好吧,我不想在這裏挑剔,但我的讀者是否打開或關閉?

+0

您的連接是否打開? – dochoffiday 2010-04-02 01:37:18

回答

0

這可能是從已被記錄在here一個MySqlDataReader將錯誤。

此外,該行後:

MySqlDataReader reader = command.ExecuteReader(); 

使用調試器來查找以下值:

reader.IsClosed; 

它會提供更好的洞察力,以與否讀者打開或關閉。

0

這是一個錯字,或者您正嘗試從另一位讀者讀取,而不是您打開的那個?

MySqlDataReader reader = command.ExecuteReader(); 

然後:

filler.Reader.Read() 
+0

對不起,錯過了。試圖使解釋更通用,但它是同一個讀者。在1秒內編輯。 – Lazlo 2010-04-02 00:00:28