//获取跳转信息
this.lblclass.Text = Convert.ToString(Session["Class"]);
this.lblclasscode.Text = Convert.ToString(Session["ClassCode"]);
this.lblname.Text = Convert.ToString(Session["Name"]);
this.lblasid.Text = Request.QueryString["as_id"].ToString();
string as_idst=this.lblasid.Text.ToString();
string name=this.lblname.Text.ToString();
//获取学生学号
SqlConnection con = new SqlConnection("server=.;database=Graduate;uid=sa;pwd=;");
con.Open();
string getst_name = this.lblname.Text.ToString();
string getst_id = Session["username"].ToString(); string cmdateset = "select top 1 * from stu_poll where as_id in('"+getas_id+"') and st_id in( select StudentID from Student where Name='" + getst_name +"' )";
SqlDataAdapter mysda = new SqlDataAdapter(cmdateset, con);
DataSet myds = new DataSet();
mysda.Fill(myds, "Sum");
int SumA = Convert.ToInt32(myds.Tables["Sum"].Rows[0]["A"].ToString());
int SumB = Convert.ToInt32(myds.Tables["Sum"].Rows[0]["B"].ToString());
int SumC = Convert.ToInt32(myds.Tables["Sum"].Rows[0]["C"].ToString());
int SumD = Convert.ToInt32(myds.Tables["Sum"].Rows[0]["D"].ToString());
string score = Convert.ToString((SumA * 10) + (SumB * 8) + (SumC * 6) + (SumD * 4)); //将分数存入到score表中 string insert = "insert into stu_score (as_id,sn,score,class_id) values ('" + getas_id + "','" + getst_id + "','" + score + "','" + getcl_id + "')";
SqlCommand insercmd = new SqlCommand(insert, con);
insercmd.ExecuteNonQuery();
//insercmd.ExecuteNonQuery(); 出现错误 说:"子查询返回的值多于一个.当子查询跟随在=、!=、 <、 <=、> 、> =之后,或子查询用作表达式时,这种情况是不允许的! "
this.lblclass.Text = Convert.ToString(Session["Class"]);
this.lblclasscode.Text = Convert.ToString(Session["ClassCode"]);
this.lblname.Text = Convert.ToString(Session["Name"]);
this.lblasid.Text = Request.QueryString["as_id"].ToString();
string as_idst=this.lblasid.Text.ToString();
string name=this.lblname.Text.ToString();
//获取学生学号
SqlConnection con = new SqlConnection("server=.;database=Graduate;uid=sa;pwd=;");
con.Open();
string getst_name = this.lblname.Text.ToString();
string getst_id = Session["username"].ToString(); string cmdateset = "select top 1 * from stu_poll where as_id in('"+getas_id+"') and st_id in( select StudentID from Student where Name='" + getst_name +"' )";
SqlDataAdapter mysda = new SqlDataAdapter(cmdateset, con);
DataSet myds = new DataSet();
mysda.Fill(myds, "Sum");
int SumA = Convert.ToInt32(myds.Tables["Sum"].Rows[0]["A"].ToString());
int SumB = Convert.ToInt32(myds.Tables["Sum"].Rows[0]["B"].ToString());
int SumC = Convert.ToInt32(myds.Tables["Sum"].Rows[0]["C"].ToString());
int SumD = Convert.ToInt32(myds.Tables["Sum"].Rows[0]["D"].ToString());
string score = Convert.ToString((SumA * 10) + (SumB * 8) + (SumC * 6) + (SumD * 4)); //将分数存入到score表中 string insert = "insert into stu_score (as_id,sn,score,class_id) values ('" + getas_id + "','" + getst_id + "','" + score + "','" + getcl_id + "')";
SqlCommand insercmd = new SqlCommand(insert, con);
insercmd.ExecuteNonQuery();
//insercmd.ExecuteNonQuery(); 出现错误 说:"子查询返回的值多于一个.当子查询跟随在=、!=、 <、 <=、> 、> =之后,或子查询用作表达式时,这种情况是不允许的! "
insert,cmdateset 在查询分析器执行看看
数据表中是否有相同的行
string cmdateset = "select top 1 * from stu_poll where as_id in("+getas_id+") and st_id in( select StudentID from Student where Name='" + getst_name +"' )";
把sql语句复制都查询分析器上看看。
你的子查询中返回了多个值,你让它们怎么比较呢?