protected void Button1_Click(object sender, EventArgs e)
    {
        for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
        {
            CheckBox chk = (CheckBox)GridView1.Rows[i].FindControl("chkCheck");
            string Is_Audit = "通过审核";
            string Class_Number = GridView1.Rows[i].Cells[0].ToString();
            if (chk.Checked == true)
            {
               string sqlStr = "update Class set IS_Audit='"+Is_Audit+"'where Class_Number='" + Class_Number + "'";
                SqlConnection myConn = GetCon();
                myConn.Open();
                SqlCommand myCmd = new SqlCommand(sqlStr, myConn);
                myCmd.ExecuteNonQuery();
                myCmd.Dispose();
                myConn.Close();
               GridViewBind();
            }
        }
    }

解决方案 »

  1.   

    string Class_Number = GridView1.Rows[i].Cells[0].ToString(); 
    这行可能有问题
      

  2.   

    "update Class set IS_Audit='"+Is_Audit+"'where Class_Number='" + Class_Number + "'"; 
    上面Is_Audit+"'where 的Is_Audit和where之间的引号没有间隔,改过
    Is_Audit+"' where
      

  3.   

     string sqlStr = "update Class set IS_Audit='"+Is_Audit+"'where Class_Number='" + Class_Number + "'";  where 前面没有间隔会出错的。需要有个空格。
      

  4.   

    编译只是检查语法,并不会检查你的sql语句,出错点看来是在where那里,很明显的
      

  5.   

    如果没有报错就是你没在绑定数据的时候用if(!ispostback)
      

  6.   

    要学会调试
    调试sqlStr是否正确
      

  7.   

    引号多了是这样,lz可以用参数@xx,不要用拼接字符串
      

  8.   

     where 钱少了一个空格