错误说明对象引用未设置为对象的实例

时间:2015-12-07 11:54:01

标签: c# asp.net query-string

我在product.aspx.cs页面中使用以下代码,当我运行代码时,我发现错误说明。

  

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

疑难解答提示..使用新关键字“

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

public partial class Yarn : System.Web.UI.Page
{

    Class1 cc = new Class1();
        string cat;
        string sub_cat;


    protected void Page_Load(object sender, EventArgs e)
    {
        cat = Request.QueryString["category"].Trim();
        sub_cat = Request.QueryString["sub_category"].Trim();
        if (!IsPostBack)
        {
          loaddata();
          disp();
        }

    }

    private void loaddata()
{
        DataList1.DataSource = cc.dis_diplay("select top 18 pname, images from product_entry order by pid desc").Tables[0];
        DataList1.DataBind();
}

    public void disp()
    {
        if (cat == "'Fibre'")
        {
            DataList1.DataSource = cc.dis_diplay("select pname, images from product_entry where sub_category="+sub_cat).Tables[0];
            DataList1.DataBind();
        }
    }

    protected void DataList1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }
}

HTML中使用的代码是:

<osm:Child><a href= "Products.aspx?cat='<%# Eval("category")%>' &&sub_cat ='<%#Eval("sub_category")%>'" title= "Cocoon"</a>Cocoon</osm:Child>

2 个答案:

答案 0 :(得分:1)

我认为你正在查询错误的名字。尝试将它们更改为

protected void Page_Load(object sender, EventArgs e)
{
        cat = Request.QueryString["cat"].Trim();
        sub_cat = Request.QueryString["sub_cat"].Trim();
        ...
}

答案 1 :(得分:0)

您应该检查null。如果query string不是null,那么从中获取value,否则会抛出null reference exception

if(Request.QueryString["category"] != null)
   cat = Request.QueryString["category"].Trim();

同时从光纤中移除single qoutes,因为它已经是string,因此无需用qoutes包围它。

只需这样做

if (cat == "Fibre")