要疯了,关于Request.QueryString取值提示未将对象引用设置到对象的实例。

aykkk 2011-07-25 04:00:32
这是个展示图片的列表页,当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))
提示这句错了,要怎么改才行?
...全文
396 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdnhbgjh 2012-05-01
  • 打赏
  • 举报
回复
string id = Request.QueryString["id"];
string TableName = Request.QueryString["TableName"];
if (!String.IsNullOrEmpty(id) && !String.IsNullOrEmpty(TableName))
{

}


Request.QueryString["id"];
后不要加.ToString()
laolaolai 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 aykkk 的回复:]
搞定了,
为什么if(!Request.QueryString["classid"].equles(null))不行,得写成 if (Request.QueryString["classid"] != null)才行?
[/Quote]

Request.QueryString["classid"]本身就是string类型的。
所以(!Request.QueryString["classid"].Equals(null))完全没有问题。
itliyi 2011-07-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 aykkk 的回复:]
搞定了,
为什么if(!Request.QueryString["classid"].equles(null))不行,得写成 if (Request.QueryString["classid"] != null)才行?
[/Quote]试着写一行代码
object obj = null;
Response.Write(obj.ToString());
楼主就知道了

空对象.ToString() 和 equal 一个道理
换成:
if(!Null.equal(Request.QueryString["classid"]){}
laolaolai 2011-07-25
  • 打赏
  • 举报
回复
string classID = Request.QueryString["classid"]
if(!string.IsNullOrEmpty(classID))
{
cid=classID;
//TODO: anything
}

试试
aykkk 2011-07-25
  • 打赏
  • 举报
回复
搞定了,
为什么if(!Request.QueryString["classid"].equles(null))不行,得写成 if (Request.QueryString["classid"] != null)才行?
鸭梨山大帝 2011-07-25
  • 打赏
  • 举报
回复
Request.QueryString["classid"].ToString() != ""

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

你需要先判断 Request.QueryString["classid"]是否为Null
子夜__ 2011-07-25
  • 打赏
  • 举报
回复
加个判断啊 你都没传值怎么获取


Request.QueryString["classid"] 加个判断 就行了。
dalmeeme 2011-07-25
  • 打赏
  • 举报
回复
先判断是否为null:
if(Request.QueryString["classid"]!=null)
if(你的代码)
  • 打赏
  • 举报
回复
当url为pics.aspx?classid=3,有参数
如果是pics.aspx,还有参数吗?
不为空就见鬼了
加一个判断
if (Request.QueryString["classid"].ToString() != "" && Request .QueryString ["classid"] != null)
快乐的小二兔 2011-07-25
  • 打赏
  • 举报
回复
Request.QueryString["classid"].ToString()
高人们告诉我不要乱用tostring
曾经我发过一个跟楼主一样的帖子。。。
然后我把tostring去掉之后。。。好了。
jsonzbc 2011-07-25
  • 打赏
  • 举报
回复
if (Request.QueryString["classid"].ToString() != "" && Request .QueryString ["classid"] != null)

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧