代码中的“rdlog["sys_power"].ToString()”这一句应该怎么改才可以正常运行
            SqlDataReader rdlog = cmdlog.ExecuteReader();
            if (rdlog.HasRows) //登录成功
            {
                rdlog.Read();               
                if ((rdempl.Checked == true)&&(rdlog["sys_power"].ToString() == "普通用户"))
                {
                        Session["username"] = this.txtusername.Text.Trim();
                        Session["userpassword"] = this.txtpwd.Text.Trim();
                        Session["systempower"] = "普通用户";
                        Response.Redirect("~/SystemManage/Common_Default.aspx");
                  }
                else if ((rdadmin.Checked == true) && (rdlog["sys_power"].ToString() == "系统管理员"))//管理员
                {
                        Session["username"] = this.txtusername.Text;
                        Session["userpassword"] = this.txtpwd.Text.Trim();
                        Session["systempower"] = "系统管理员";
                        Response.Redirect("~/SystemManage/Management_Default.aspx");
                   
                }
                else
                {
                     Response.Write("<script lanaguage='javascript'>alert('您的用户权限不对,请重新选择');location='javascript:history.go(-1)';</script>");
                 }                
            }
            else
            {
                Response.Write("<script lanaguage='javascript'>alert('您的用户名或密码不对');location='javascript:history.go(-1)';</script>");
            }

解决方案 »

  1.   

    你都不贴异常信息,别人怎么办呢判断。
    但8成2个原因:1:sys_power没这个字段,2:这个字段是null值~
      

  2.   

    你前面还有代码吗????你确定这个有值?rdlog["sys_power"].ToString()
      

  3.   

    if ((rdempl.Checked == true)&&(rdlog["sys_power"] != DBNull.Value && rdlog["sys_power"].ToString() == "普通用户"))
      

  4.   

    if ((rdempl.Checked == true)&&((rdlog["sys_power"]==DBNull.Value?"":rdlog["sys_power"].ToString()).Equals("普通用户"))
    ))
      {}
      

  5.   

    数据库中有sys_power这个字段,并且也有"普通用户"和“系统管理员”这两个不同的值,不存在空值这种情况,运行这段代码,不论查询的结果是“系统管理员”还是“普通用户”哪种情况,都会显示“您的用户权限不对,请重新选择”,上面这段代码就是出错的代码
      

  6.   

    单步跟踪
    if (rdempl.Checked&&rdlog["sys_power"].ToString().Equals("普通用户"))
      {}
      

  7.   

    运行的结果是不论输入是数据表中的哪条记录信息,都会显示“您的用户权限不对,请重新选择”这行代码的内容,这是全部的代码:
     DBClass logclass = new DBClass();  
    protected void btnlogin_Click(object sender, EventArgs e)
        {
            if (this.txtusername.Text.Trim() == "" || this.txtpwd.Text.Trim() == "")
            {
                Response.Write("<script language='javascript'>alert('对不起,用户名或密码不能为空!');location='javascript:history.go(-1)';</script>");
                return;
            }
            else if (txtvalidate.Text == "" || txtvalidate.Text != lbValidate.Text)
            {
                Response.Write("<script language='javascript'>alert('对不起,验证码不正确!');location='javascript:history.go(-1)';</script>");
                return;
            }
            SqlConnection conlog = logclass.GetConnection();//新建连接        SqlCommand cmdlog = new SqlCommand("denlusystem", conlog);
            cmdlog.CommandType = CommandType.StoredProcedure;        SqlParameter parausername = new SqlParameter("@name",SqlDbType.NVarChar,50);
            parausername.Value = txtusername.Text.Trim();
            cmdlog.Parameters.Add(parausername);        SqlParameter parapwd = new SqlParameter("@pwd",SqlDbType.NVarChar,50);
            parapwd.Value = txtpwd.Text.Trim();
            cmdlog.Parameters.Add(parapwd);
            try
            {
                conlog.Open();            SqlDataReader rdlog = cmdlog.ExecuteReader();
                if (rdlog.HasRows) //登录成功
                {
                    rdlog.Read();               
                    if ((rdempl.Checked == true)&&(rdlog["sys_power"].ToString() == "普通用户"))
                    {
                            Session["username"] = this.txtusername.Text.Trim();
                            Session["userpassword"] = this.txtpwd.Text.Trim();
                            Session["systempower"] = "普通用户";
                            Response.Redirect("~/SystemManage/Common_Default.aspx");
                      }
                    else if ((rdadmin.Checked == true) && (rdlog["sys_power"].ToString() == "系统管理员"))//管理员
                    {
                            Session["username"] = this.txtusername.Text;
                            Session["userpassword"] = this.txtpwd.Text.Trim();
                            Session["systempower"] = "系统管理员";
                            Response.Redirect("~/SystemManage/Management_Default.aspx");
                       
                    }
                    else
                    {
                         Response.Write("<script lanaguage='javascript'>alert('您的用户权限不对,请重新选择');location='javascript:history.go(-1)';</script>");
                     }                
                }
                else
                {
                    Response.Write("<script lanaguage='javascript'>alert('您的用户名或密码不对');location='javascript:history.go(-1)';</script>");
                }
            }        catch (Exception ex)
            {
                Response.Write(ex.Message.ToString());
            }
            finally
            {
                conlog.Close();            
                cmdlog.Dispose();
            }
        }
      

  8.   

      if (rdempl.Checked && rdlog["sys_power"]!=null && rdlog["sys_power"].ToString() == "普通用户")