我必须在同一个按钮中的另一个查询中使用查询的结果,当我执行这段代码时,我有。已经有一个打开的DataReader与这个命令相关,必须先关闭。
protected void Button1_Click(object sender, EventArgs e)
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
SqlParameter p = new SqlParameter("p1", ddlClients.SelectedValue);
SqlParameter q = new SqlParameter("q1", ddlProjets.SelectedValue);
SqlParameter t = new SqlParameter("t1", ddlProduits.SelectedValue);
SqlParameter r = new SqlParameter("r1", ddlShift.SelectedValue);
SqlParameter s = new SqlParameter("s1", ddlDefaut.SelectedValue);
cmd.Parameters.Add(p);
cmd.Parameters.Add(q);
cmd.Parameters.Add(r);
cmd.Parameters.Add(s);
cmd.Parameters.Add(t);
cmd.CommandText = "insert into Aff (Operations_ID, Emplacements_ID, Projets_ID, Zones_ID, Machines_ID )values(15, 25, @p1, 1, 5)";
cmd.CommandText = "SELECT IDENT_CURRENT('Aff')";
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
cmd.CommandText = "insert into Insp (Affectations_ID, Shifts_ID, Produits_ID, date, Machine) values(reader ,@r1, @t1, '" + TextBox1.Text + "', '" + TextBox2.Text + "')";
cmd.CommandText = "SELECT IDENT_CURRENT('Insp')";
SqlDataReader reader2 = cmd.ExecuteReader();
if (reader2.Read())
cmd.CommandText = "insert into def (BaseDefauts_ID, Inspection_ID, matricule, quantite) values(@s1, reader2, '" + TextBox3.Text + "', '" + TextBox4.Text + "')";
cmd.ExecuteNonQuery();
con.Close();
Response.Redirect("Cascad.aspx");
2 个回答
0 人赞同
已经有一个开放的数据读取器与此命令相关联,必须首先关闭。
你需要处理这个数据读取器,例如。
using(var reader = cmd.ExecuteReader())
if (reader.Read())