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必须先关闭。”
好吧,我不想在这里挑剔,但我的读者是开放还是关闭?
答案 0 :(得分:0)
这是一个错字,或者你试图从另一个读者那里读取,而不是你打开的那个?
MySqlDataReader reader = command.ExecuteReader();
然后:
filler.Reader.Read()
答案 1 :(得分:0)
这可能来自MySqlDataReader中已记录here的错误。
此外,在这一行之后:
MySqlDataReader reader = command.ExecuteReader();
使用调试器查找以下值:
reader.IsClosed;
这将更好地了解读者是否开放或关闭。