对象引用未设置为对象的实例5

时间:2012-09-24 06:19:58

标签: c# asp.net jqgrid

这是我的问题:

我无法显示数据库中的所有记录。
有一个错误提示
对象引用未设置为对象的实例。

我真的不知道如何解决这个问题。

这是错误..

strProjectID = Request.QueryString["ProjectID"].ToString();

这是代码......

protected void Page_Load(object sender, EventArgs e) 
    {

        strProjectID = Request.QueryString["ProjectID"].ToString();
        if (JQGrid1.AjaxCallBackMode != AjaxCallBackMode.None)            
        {               
            // save the last grid state in session - to be used for exporting                
            Session["gridFilterPageState"] = JQGrid1.GetState();            
        }
    }

3 个答案:

答案 0 :(得分:2)

如果没有ProjectID查询字符串参数传递给请求,则在空实例上调用.ToString。因此,请确保在调用页面时传递此查询字符串参数:/WebFormName.aspx?ProjectID=123

答案 1 :(得分:1)

当您在指定的url中未传递指定的参数时会发生此问题...请确保指定的参数必须通过url传递... 您可以通过以下方式检查请求是否包含给定参数:

if(Request.QueryString["ProjectID"] !=null)
{
   strProjectID = Request.QueryString["ProjectID"].ToString();
}

如果你真的想要没有检查而且根本没有错误,你可以这样做:

 strProjectID = Convert.ToString(Request.QueryString["ProjectID"]);

如果empty string不包含Querystring,则会返回ProjectID

答案 2 :(得分:0)

用下面这段代码替换你的代码。

protected void Page_Load(object sender, EventArgs e) 
{
    if(Request.QueryString["ProjectID"] != null)
    {
       strProjectID = Request.QueryString["ProjectID"].ToString();
    }

    if (JQGrid1.AjaxCallBackMode != AjaxCallBackMode.None)            
    {               
        // save the last grid state in session - to be used for exporting                
        Session["gridFilterPageState"] = JQGrid1.GetState();            
    }
}

说明:问题是 ProjectID 可能不存在于QueryString中。因此,为了安全起见,可以进行空检查。