Object reference not set to an instance of an object错误解决方案

有个项目需要页面根据传入的值显示对应一条记录,否则就显示所有内容!一开始我的代码如下:


 string QkeyWord = Request.QueryString["KeyWord"].ToString();
        if (QkeyWord!= null)
        {//如果不为空就执行以下语句,可惜在上面string就已经报错了
            this.AccessDataSource1.SelectCommand = "select * from seorank where K_CompanyUid='" + Session["UserName"].ToString() + "' and K_Word='" + QkeyWord + "'  order by K_Date desc";
            this.GvkeyWords.DataBind();
        }
说是没实例化对象,或者值为null成的!报错截图以下所示:

 

网上搜索Object reference not set to an instance of an object.错误,结果都是说的跟这个没关系的!
不得已,自己修改代码再测试了下!


        if (Request.QueryString["KeyWord"].ToString() != null)
        {
            //直接判断还是不行!
        }


protected string QkeyWord;
protected void Page_Load(object sender, EventArgs e)
    {       
        QkeyWord = Request.QueryString["KeyWord"];
        if (QkeyWord != null)
        {
            //上面先定义一个字符型变量,然后取值来赋值,结果还是报错
        } 
    }
最后还是在群里的朋友给出了解答!

 

string QkeyWord = Request.QueryString["KeyWord"];
        if (QkeyWord != null)
        {  //因为值为空,所以不能Tostring!
            this.AccessDataSource1.SelectCommand = "select * from seorank where K_CompanyUid='" + Session["UserName"].ToString() + "' and K_Word='" + QkeyWord + "'  order by K_Date desc";
            this.GvkeyWords.DataBind();
        }

最后得出一个教训,如果是页面刚开始加载就判断别的页面传入的值,应该用语句
QkeyWord = Request.QueryString["KeyWord"]
尽量不要直接用Tostring,切记切记!!
我就是在字符型的变量时都习惯性的加个Tostring()才造成这个错误!
文章出处:飞诺网(http://www.diybl.com/course/4_webprogram/asp.net/netjs/20090313/161332.html)

你可能感兴趣的:(Object reference not set to an instance of an object错误解决方案)