2012-07-12 221 views
1
MySqlCommand status = 
    new MySqlCommand("select name_ru from request_status where id = '50'", conn); 
MySqlDataReader dr_status = status.ExecuteReader(); 
dr_status.Read(); 
MySqlCommand cmd = new MySqlCommand(query, conn); 
dt.Load(cmd.ExecuteReader()); 
MySqlDataReader dr = cmd.ExecuteReader(); 

错误:MySqlDataReader将必须被关闭

MySqlDataReader must be closed first

请帮助...

+1

你为什么要这么多次调用ExecuteReader?在使用另一个阅读器之前,您必须关闭一个开放阅读器 – 2012-07-12 09:56:47

+2

为什么要执行两次读取器? – 2012-07-12 09:56:48

回答

0

你需要在同一时间只使用一个读者。你正在使用三个。将所有阅读器封装在一个使用块中,以确保它们在所有情况下都处理完毕。

ExecuteReader是什么执行你的SQL。在你的示例代码中,你执行三次相同的SQL,这可能不是你想要的。

+0

试试catch块? – kekus 2012-07-12 11:40:45

相关问题