SqlConnection mySqlConnection = new SqlConnection(strConstrin);
         SqlCommand cmd = mySqlConnection.CreateCommand();         cmd.CommandText = "SELECT * FROM Teacher WHERE TeaName='" + name + "' AND TeaNumber='" + password + "'";//查询语句
         mySqlConnection.Open();
        SqlDataReader Reader = cmd.ExecuteReader();
       if (Reader.Read())
          {
              
              Session["Tclass"] = Reader["name"].ToString();;
              Response.Redirect("Default.aspx");
              mySqlConnection.Close();
          }
为什么session["Tclass"]没有值呢。
我的目的是想进行权限验证,不同的权限进入不同的页面

解决方案 »

  1.   

    没有取到Reader["name"].ToString()的值吧
      

  2.   

    "SELECT * FROM Teacher WHERE TeaName='" + name + "' AND TeaNumber='" + password + "'"打印出来,在查询分析器里运行一下
      

  3.   

    因为你的sql语句where条件不成立呗,可能name或password字段设置了char型或nchar型了,改成varchar型或nvarchar型。
      

  4.   

    肯定没有啊  应该是 Reader["TeaName"].ToString();楼主你疏忽了啊 
      

  5.   

    因为读取的值已经赋给session了,这个应该没问题吧!你跟一下不就知道问题再哪了吗?别说你不会跟踪调试啊!!
      

  6.   

    楼上回答的两种情况都存在:
    读取数据的时候最好判断下是否为空,不为空情况下再赋值给session;
    把关闭数据库连接语句放到判断条件语句外;
      

  7.   

    最简单的测试方法:
    if (Reader.Read())
      {
      String test=Reader["name"].ToString();
       Response.Write(test);//看是否有你想要的值~!另外楼主你下面好像多了个‘;’分号吧!
      Session["Tclass"] = Reader["name"].ToString();
      Response.Redirect("Default.aspx");
      mySqlConnection.Close();
      }
      

  8.   

    最简单的测试方法:
    if (Reader.Read())
      {
      String test=Reader["name"].ToString();
       Response.Write(test);//看是否有你想要的值~!另外楼主你下面好像多了个‘;’分号吧!
      Session["Tclass"] = Reader["name"].ToString();
      Response.Redirect("Default.aspx");
      mySqlConnection.Close();
      }