错误提示:已有打开的与此命令相关联的 DataReader,必须首先将它关闭。 public void JoinKf()
{
int id = Convert.ToInt32(Request.QueryString["id"]);
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创建数据库连接
SqlConnection myconn = new SqlConnection(settings);
myconn.Open();
//创建查询语句
string sql = "select * from Student_xx As a Left Join Student_xj As b on a.StuId = b.StuId Where a.StuId=" + id;
//创建数据库命令
SqlCommand mycmd = new SqlCommand(sql, myconn);
SqlDataReader result = mycmd.ExecuteReader();
if (result.Read())
{
string pczt = "未赔偿";
string sql1 = "insert into KouFei(StuId, Xh, StuName, Sex, Xs, Zy, Nj, ClassName, KfJe, KfYy, KfR, KfBm, KfTime, PcZt) Values(" + id + "," + "'" + result["Xh"].ToString() + "'," + "'" + result["StuName"].ToString() + "'," + "'" + result["Sex"] + "'," + "'" + result["Xs"].ToString() + "'," + "'" + result["Zy"].ToString() + "'," + "'" + result["Nj"].ToString() + "'," + "'" + result["ClassName"].ToString() + "'," + "'" + tbx_kfje.Text.ToString() + "'," + "'" + tbx_kfyy.Text.ToString() + "'," + "'" + Session["UserName"].ToString() + "'," + "'" + Session["UserBm"].ToString() + "'," + "'" + DateTime.Now + "'," + "'" + pczt + "')";
//创建数据库命令
SqlCommand mycmd1 = new SqlCommand(sql1, myconn);
mycmd1.ExecuteNonQuery();
}
myconn.Close();
}
{
int id = Convert.ToInt32(Request.QueryString["id"]);
//读取数据库连接字符串
string settings = Convert.ToString(ConfigurationManager.ConnectionStrings["SqlServices"]);
//创建数据库连接
SqlConnection myconn = new SqlConnection(settings);
myconn.Open();
//创建查询语句
string sql = "select * from Student_xx As a Left Join Student_xj As b on a.StuId = b.StuId Where a.StuId=" + id;
//创建数据库命令
SqlCommand mycmd = new SqlCommand(sql, myconn);
SqlDataReader result = mycmd.ExecuteReader();
if (result.Read())
{
string pczt = "未赔偿";
string sql1 = "insert into KouFei(StuId, Xh, StuName, Sex, Xs, Zy, Nj, ClassName, KfJe, KfYy, KfR, KfBm, KfTime, PcZt) Values(" + id + "," + "'" + result["Xh"].ToString() + "'," + "'" + result["StuName"].ToString() + "'," + "'" + result["Sex"] + "'," + "'" + result["Xs"].ToString() + "'," + "'" + result["Zy"].ToString() + "'," + "'" + result["Nj"].ToString() + "'," + "'" + result["ClassName"].ToString() + "'," + "'" + tbx_kfje.Text.ToString() + "'," + "'" + tbx_kfyy.Text.ToString() + "'," + "'" + Session["UserName"].ToString() + "'," + "'" + Session["UserBm"].ToString() + "'," + "'" + DateTime.Now + "'," + "'" + pczt + "')";
//创建数据库命令
SqlCommand mycmd1 = new SqlCommand(sql1, myconn);
mycmd1.ExecuteNonQuery();
}
myconn.Close();
}
先close
在重新 conn.open()
可以先返回DataSet再循环处理。
我想实现的就是从表中提取的数据添加到另一个表中
不能使用myconn连接了
重新定义一个吧。。
我想实现的就是从表中提取的数据添加到另一个表中
{
.....
}
这里把result关闭
result.close();
result.Close();
myconn.Close(); 建议你加上try{..}catch(..)防止意外不能关闭连接的情况
MultipleActiveResultSets=true;