矛盾的MySqlReader错误

时间:2010-04-01 23:00:27

标签: c# .net mysql

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必须先关闭。”

好吧,我不想在这里挑剔,但我的读者是开放还是关闭?

2 个答案:

答案 0 :(得分:0)

这是一个错字,或者你试图从另一个读者那里读取,而不是你打开的那个?

MySqlDataReader reader = command.ExecuteReader();

然后:

filler.Reader.Read()

答案 1 :(得分:0)

这可能来自MySqlDataReader中已记录here的错误。

此外,在这一行之后:

MySqlDataReader reader = command.ExecuteReader();

使用调试器查找以下值:

reader.IsClosed;

这将更好地了解读者是否开放或关闭。