我收到此错误“已经有一个与此连接关联的打开DataReader,必须先关闭”。我曾尝试使用命令,但仍无法解决此问题。我正在使用的代码如下已经有一个打开的DataReader与此连接相关联,必须先使用c#关闭它。#
{
conn.Open();
queryStr = "";
queryStr = "select * from mydata.items;";
cmd = new MySqlCommand(queryStr, conn);
cmd.ExecuteReader();
using (MySqlDataAdapter MyAdapter = new MySqlDataAdapter())
{
MyAdapter.SelectCommand = cmd;
using (DataTable dTable = new DataTable())
{
MyAdapter.Fill(dTable);
GridView1.DataSource = dTable;
}
}
}
我最初尝试在代码下面(不使用命令)。
conn.Open();
queryStr = "";
queryStr = "select * from mydata.items;";
cmd = new MySqlCommand(queryStr, conn);
cmd.ExecuteReader();
MySqlDataAdapter MyAdapter = new MySqlDataAdapter();
MyAdapter.SelectCommand = cmd;
DataTable dTable = new DataTable();
MyAdapter.Fill(dTable);
GridView1.DataSource = dTable;
conn.Close();
但两者的代码是给完全相同的错误(即:已经有一个用此连接,必须先关闭相关联的打开的DataReader。) 您的帮助将非常感激。 在此先感谢!
为什么您认为(在任一示例中)您需要'cmd.ExecuteReader();'行?打开数据阅读器的那个人,错误信息告诉你,然后你忽略/泄漏它。 –