StudentManager.User user = new StudentManager.User();
            SqlDataReader panduan = user.GetUserLogin(UserName.Text.Trim(),StudentManager.User.Encrypt(Password.Text.Trim()));
            
            ///判断用户是否合法
                if(panduan.Read())
            {
                userId = panduan["UserID"].ToString();
            }
            panduan.Close();            ///验证用户合法性,并跳转到系统平台
            if ((userId != null) && (userId != ""))
            {
                Session["UserID"] = userId;                //跳转到登录后的第一个页面
                Response.Redirect("~/DesktopModules/Main.aspx");
            }
我这样校验用户总是抱错:“用户代码未处理”在这里出错“_objectTypeCount = 0”

解决方案 »

  1.   

    userId 赋初值没有?
    panduan能得到值吗? 最好修改下GetUserLogin函数,直接返回string,
    SqlDataReader 用的资源多些
      

  2.   

    判断ExecuteScalar()返回的值比较好!
      

  3.   

    user.GetUserLogin(UserName.Text.Trim(),StudentManager.User.Encrypt(Password.Text.Trim()))
    检查一下这个方法的返回值
      

  4.   

    SqlCommand sc=new SqlCommand()
    ....
    ...
    sc.CommandText="SELECT * FROM User_Tb WHERE USER=@USER AND PWD=@PWD"
    ....
    ...设置 一下参数值
    int i=0;
    i=Int32.Parse(sc.ExecuteScalar());
    if(i!=0)
    {
      登录成功
    }
    else
    {
     登录失败
    }
      

  5.   

    userId 赋初值没有?
    panduan能得到值吗? 最好修改下GetUserLogin函数,直接返回string,
    SqlDataReader 用的资源多些userId这样赋的初值:String userId = "";