cs文件
public partial class zhihuijioashi : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        apDiv19.Visible = false;
        apDiv20.Visible = true;
        apDiv21.Visible = false;
        apDiv22.Visible = true;
        apDiv23.Visible = false;
        apDiv24.Visible = true;
        apDiv25.Visible = false;
        apDiv26.Visible = true;
        apDiv27.Visible = false;
        apDiv28.Visible = true;
        apDiv29.Visible = false;
        apDiv30.Visible = true;
        apDiv31.Visible = false;
        apDiv32.Visible = true;
        apDiv33.Visible = true;
        apDiv34.Visible = true;
        apDiv35.Visible = false;
        apDiv36.Visible = true;
        apDiv37.Visible = false;
        apDiv38.Visible = true;
        apDiv39.Visible = false;
        apDiv40.Visible = true;
        apDiv41.Visible = true;
        apDiv42.Visible = false;
        apDiv43.Visible = true;
        apDiv44.Visible = false;
        apDiv45.Visible = true;
        apDiv46.Visible = false;
        apDiv47.Visible = true;
        apDiv48.Visible = false;
        apDiv49.Visible = true;
        apDiv50.Visible = false;
        apDiv51.Visible = true;
        apDiv52.Visible = false;
        apDiv53.Visible = true;
        apDiv54.Visible = true;
        apDiv55.Visible = true;
        apDiv56.Visible = false;
        apDiv57.Visible = true;
        apDiv58.Visible = false;
        apDiv59.Visible = true;
        apDiv60.Visible = false;
            }
protected void ImageButton2_Click(object sender, ImageClickEventArgs e)
    {
        string classroom = TextBox1.Text.ToString();        string strConn;
        SqlDataAdapter objDataAdapter;
        strConn = "server=localhost;database=intelliCampus;Integrated Security=true";   
        SqlConnection myConn = new SqlConnection(strConn);
        myConn.Open();
        SqlCommand cmd = new SqlCommand("select * from '" + classroom + "'", myConn);
        objDataAdapter = new System.Data.SqlClient.SqlDataAdapter("select [isBooked] from ["+classroom+"]",  myConn);
        DataTable dt = new DataTable();
        objDataAdapter.Fill(dt);
        // int[] a = new int[27];
        int[] a = new int[dt.Rows.Count];        for (int i = 0; i < dt.Rows.Count; i++)
        {            a[i] = Convert.ToInt16(dt.Rows[i]["isBooked"].ToString());
        }
        int m = 0;
        for (int j = 0; j < 43; j++)
        {
            int n = j + 19;            if (a[j] == 0)
            {                FindControl("apDiv" + n.ToString()).Visible = false;//隐藏  在这提示System.NullReferenceException: 未将对象引用设置到对象的实例。   但是我写另一个页面时这样写没错误呀            
             m = m + 1;            }
            else
            {
                FindControl("apDiv" + n.ToString()).Visible = true;//显示
            }
        }
        Label1.Text = Convert.ToString(m);        myConn.Close();//关闭数据库的连接
        myConn = null;    }大家再看看别的地方还有没有错误呀

解决方案 »

  1.   

    apDiv60.Visible = false
    好像你apDiv只到了60,而for循环中FindControl里面的apDiv到了61,如果a[42]==0,肯定会报null
    for (int j = 0; j < 43; j++)
      {
      int n = j + 19;  if (a[j] == 0)
      {  FindControl("apDiv" + n.ToString()).Visible = false;//
      

  2.   

    不好意思,你还有个else没看,
    FindControl()下面的apDiv到了61
      

  3.   

    for (int j = 0; j <= 31; j++)因为你没有那么多控件
      

  4.   

    FindControl("apDiv" + n.ToString()) 不需要 as 类型?看看"apDiv" + n.ToString()这个输出是什么也许没有找到。