一千萬個為什麽

搜索

矛盾的MySqlReader錯誤

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

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

我在最後一行收到錯誤,說“讀取器關閉時無效嘗試讀取”。 現在,如果我在它之前添加另一行,如:

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()) { ... }

我在新行中收到錯誤消息“已經有一個與此Connection相關聯的打開DataReader,必須先關閉它。”

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

最佳答案

這可能來自MySqlDataReader中的一個錯誤,該錯誤已在此處中記錄。

此外,在此行之後:

MySqlDataReader reader = command.ExecuteReader();

使用調試器查找以下值:

reader.IsClosed;

這將更好地了解讀者是否開放或關閉。

轉載註明原文: 矛盾的MySqlReader錯誤