我在网页中做用户名登陆出现下列问题:
未将对象引用设置到对象的实例。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。源错误: 
行 21:  private void Page_Load(object sender, System.EventArgs e)
行 22:  {
行 23:  string userName=Request.Form["userName"].ToString();
行 24:  string userPwd=Request.Form.Get("userPwd").ToString();
行 25:  SqlConnection con=new SqlConnection("server=.;database=login;uid=sa;pwd=;");
 源文件: e:\gaowang0401\gaowang.aspx.cs    行: 23 
c#中的代码。。不知道有没有问题。。
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;namespace gaowang0401
{
/// <summary>
/// WebForm1 的摘要说明。
/// </summary>
public class WebForm1 : System.Web.UI.Page
{

private void Page_Load(object sender, System.EventArgs e)
{
string userName=Request.Form["userName"].ToString();
string userPwd=Request.Form.Get("userPwd").ToString();
SqlConnection con=new SqlConnection("server=.;database=login;uid=sa;pwd=;");
con.Open();
SqlCommand cmd=new SqlCommand("select count(*) from login where userName='"+userName+"' and userPwd='"+userPwd+"'",con);
int count=Convert.ToInt32(cmd.ExecuteScalar());
if(count>0)
{
Response.Redirect("url:http://www.126.com");
}
{
Response.Redirect("url:http://www.hao123.com");
}
// 在此处放置用户代码以初始化页面
}

解决方案 »

  1.   

    对象没有实例化,也就是空指针异常。应该是Request.Form["userName"]没有得到任何东西,返回一个null,再调用实例方法toString()就抱错了。
      

  2.   

    如果userName不必须传过来,可以用异常处理
    private void Page_Load(object sender, System.EventArgs e)
    {
        string userName = ""; //给一个初始化的值
        try {
    userName=Request.Form["userName"].ToString();
        } catch(Exception ex) {
        }
      

  3.   

    string userName=Request.Form["userName"].ToString();
    改成
    string userName=Request.QueryString["userName"].ToString();
    试试
      

  4.   

    考,你在输入时先检查下userName元素看有没有数据
    用验证控件或者客户端脚本都可以啊
      

  5.   

    string userName=(Request.Form["userName"].ToString() = null)? "":request.form["username"].tostring();
      

  6.   

    你不是吧!你的问题可能出在request.form["userName"] 根本就是null
    string userName=(Request.Form["userName"] = null)? "":request.form["username"].tostring();
    你再试试
      

  7.   

    你先告诉我们request.form["userName"]的数据是怎么传过来的吧
      

  8.   

    你先在page_load里
    string userName = "";  在""里给个实际可以登陆的值.就是正确的登陆用户名.
    string userPwd = "";   这个""写上该用户名的密码.
    然后再试.就知道你错在什么地方了.
      

  9.   

    使用Request["userName"]即可
    你出现的错误是由于你打开网页时对应的url没有相应的键值而导致出错的
    直接使用Request["userName"]就算不存对应的键也不会报错.,
    但你使相应的变量时应该判断值是否为空
      

  10.   

    string uid = Request["userName"] + "";这样就OK了
      

  11.   

    先判断下
    if(Request.Form["userName"]!=null)
    {
    string userName=Request.Form["userName"].ToString();
    }
      

  12.   

    null值时
    1.判断2.传值if(Request.Form["userName"]!=null)
    {
    string userName=Request.Form["userName"].ToString();
    }
    或者
    string uid = Request["userName"] + "";
    但要明白原因楼上有正解就不说了
      

  13.   

    xqlvcc(FLSAFE) 
    你的
    string userName=(Request.Form["userName"] = null)? "":request.form["username"].tostring();
    少了一个"="号string userName=(Request.Form["userName"] == null)? "":request.form["username"].tostring(); 这样就可以了
      
     
      

  14.   

    觉得你还是把出错程序注释掉
    先判断下,有没有值
    if(Request.Form["userName"]!=null)
    {
      Response.Write("无值");
    }
    再去检查出错的原因,一步步来,
      

  15.   

    没有值的话,再怎么调也是null的错啊
      

  16.   

    string drostri = (Request.QueryString["drostring"] == null) ? "所有日志" : Request.QueryString["drostring"].ToString();
     
    ---------我用的