asp.net C# acess数据库请大家帮我改改,错误提示:
"已有打开的与此命令相关联的 DataReader,必须首先将它关闭。"
string connstring = ConfigurationManager.ConnectionStrings["Conn"].ConnectionString; OleDbConnection con = new OleDbConnection(connstring);
con.Open();
OleDbCommand cm = new OleDbCommand("select fenlei2 from flash group by fenlei2", con); OleDbDataReader dr = cm.ExecuteReader(); while (dr.Read())
{
string strsql = "select SClass from SClass where SClass="+dr.GetString(0);
OleDbCommand cm1 = new OleDbCommand(strsql, con);
OleDbDataReader dr1 = cm.ExecuteReader();
if (!dr1.HasRows)
{
string addsql = "insete sclass(SClass) values('" + dr.GetString(0) + "')";
OleDbCommand cm2 = new OleDbCommand(addsql, con);
cm2.ExecuteNonQuery();
} Response.Write(dr.GetString(0));
Response.Write("<br>");
}
con.Close();
"已有打开的与此命令相关联的 DataReader,必须首先将它关闭。"
string connstring = ConfigurationManager.ConnectionStrings["Conn"].ConnectionString; OleDbConnection con = new OleDbConnection(connstring);
con.Open();
OleDbCommand cm = new OleDbCommand("select fenlei2 from flash group by fenlei2", con); OleDbDataReader dr = cm.ExecuteReader(); while (dr.Read())
{
string strsql = "select SClass from SClass where SClass="+dr.GetString(0);
OleDbCommand cm1 = new OleDbCommand(strsql, con);
OleDbDataReader dr1 = cm.ExecuteReader();
if (!dr1.HasRows)
{
string addsql = "insete sclass(SClass) values('" + dr.GetString(0) + "')";
OleDbCommand cm2 = new OleDbCommand(addsql, con);
cm2.ExecuteNonQuery();
} Response.Write(dr.GetString(0));
Response.Write("<br>");
}
con.Close();
ADO.NET 里面 一个 Connection 只能同时用于一个 DataReader
(select fenlei2 from flash group by fenlei2)
这样不用两个reader了
OleDbCommand cm1 = new OleDbCommand(strsql, con);
===========》
重新开个连接
OleDbConnection con2 = new OleDbConnection(connstring);
con2.Open();
OleDbCommand cm1 = new OleDbCommand(strsql, con2);
"Data Source=./;....;MultipleActiveResultSets=True" 但是不建议使用