读书人

要疯了,关于Request.QueryString取值提

发布时间: 2012-05-02 15:36:04 作者: rapoo

要疯了,关于Request.QueryString取值提示未将对象引用设置到对象的实例。
这是个展示图片的列表页,当url为pics.aspx?classid=3这样时页面正常显示,如果是pics.aspx则提示:未将对象引用设置到对象的实例。
下面是我的代码:
public partial class pics : System.Web.UI.Page
{
protected string cid=string .Empty ;
protected string tit;
protected string key = string.Empty;
protected string sql = string.Empty;

private void bdpics()
{
dal dal = new dal();
if (key == "")
{
sql = "select id,title,classid,DefaultPicUrl from WygkcnZWB_Product where classid=? order by id desc";
OleDbParameter[] pas ={
new OleDbParameter ("@cid",cid)};
lvpic.DataSource = dal.getdataset(sql, "pics",pas );
}
else
{
sql = "select id,title,classid,DefaultPicUrl from WygkcnZWB_Product where classid=? and title like '%'+?+'%' order by id desc";
OleDbParameter[] pas = {
new OleDbParameter ("@cid",cid),
new OleDbParameter ("@key",key)};
lvpic.DataSource = dal.getdataset(sql, "pics",pas);
}

lvpic.DataBind();
uc_top.tkey = "";
}

protected void Page_PreRender(object sender, EventArgs e)
{
bdpics();//listview数据绑定必须放在这里,否则得不到正确结果
}

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (uc_top.tkey=="")
{
key = "";
}
else
{
key = uc_top.tkey;
}

if (Request.QueryString["classid"].ToString() != "" || Request .QueryString ["classid"].Equals (null)) //这里提示错误
{
cid = Request.QueryString["classid"].ToString();
}


switch (cid)
{
case "1":
tit = "企业产品";
break;
case "3":
tit = "工程业绩";
break;
default:
tit = "企业产品";
break;
}

}
}
}


if (Request.QueryString["classid"].ToString() != "" || Request .QueryString ["classid"].Equals (null))
提示这句错了,要怎么改才行?

[解决办法]
先判断是否为null:
if(Request.QueryString["classid"]!=null)
if(你的代码)
[解决办法]
Request.QueryString["classid"].ToString() != ""

一个null的对象直接tostring,当然报错了。

你需要先判断 Request.QueryString["classid"]是否为Null
[解决办法]

C# code
string classID = Request.QueryString["classid"]if(!string.IsNullOrEmpty(classID)){   cid=classID;   //TODO: anything}
[解决办法]

探讨
搞定了,
为什么if(!Request.QueryString["classid"].equles(null))不行,得写成 if (Request.QueryString["classid"] != null)才行?

读书人网 >asp.net

热点推荐