if else语句问题

_Kmi 2013-07-10 04:22:11
本来写的从页面传入类别ID并取出该类别下的所有记录,但是现在发现了问题就是如果没有从其它页面跳转过来,而直接浏览这个页面就要报错,然后就改造了成下面,不知道什么地方写错,还是逻辑有问题,依然报错。这样判定条件成立吗?
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string caid = Request.QueryString["caId"].ToString();
if (caid == null)
{
//绑定新闻
gvNews.DataSource = new News().SelectAll();
gvNews.DataBind();
}
else
{
gvNews.DataSource = new News().SelectBycaId(caid);
gvNews.DataBind();
}
}
}
...全文
131 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
_Kmi 2013-07-10
  • 打赏
  • 举报
回复
谢谢各位解答,已找到问题,确实需要先判断caid是否为空,再ToString就OK了
_Kmi 2013-07-10
  • 打赏
  • 举报
回复
引用 6 楼 u011096386 的回复:
string caid = Request.QueryString["caId"].ToString(); 这个有问题 要先判断Request.QueryString["caId"]!=null 然后才可以ToString() 否则是不存在对象的
感谢,确实是这个问题
yunlovejia 2013-07-10
  • 打赏
  • 举报
回复
要先判断Request.QueryString["caId"]是不是null再ToString(); null.ToString()肯定出错。

            var  caid = Request.QueryString["caId"];
            if (caid == null)
            {
                //绑定新闻
                gvNews.DataSource = new News().SelectAll();
                gvNews.DataBind();
            }
            else
            {
                gvNews.DataSource = new News().SelectBycaId(caid.ToString());
                gvNews.DataBind();
            }
云飞兄 2013-07-10
  • 打赏
  • 举报
回复
报什么错呢?
exboylfs 2013-07-10
  • 打赏
  • 举报
回复
能把错误代码发上来看吗? 现在判断只能初步判断 string caid = Request.QueryString["caId"].ToString(); 这个可能有问题,因为 Request.QueryString["caId"] 本身就有可能是null 的。 建议这样
 Object caid = Request.QueryString["caId"];
            if (caid == null)
            {
                //绑定新闻
                gvNews.DataSource = new News().SelectAll();
                gvNews.DataBind();
            }
            else
            {
                gvNews.DataSource = new News().SelectBycaId(caid.ToString());
                gvNews.DataBind();
            }
ztszhq 2013-07-10
  • 打赏
  • 举报
回复
string caid = Request.QueryString["caId"].ToString(); 这个有问题 要先判断Request.QueryString["caId"]!=null 然后才可以ToString() 否则是不存在对象的
wumin940590725 2013-07-10
  • 打赏
  • 举报
回复
string caid = Request.QueryString["caId"].ToString(); 在上行后面加个Console.writeline(caid);然后你就知道你的caid是什么了。if语句没错
_Kmi 2013-07-10
  • 打赏
  • 举报
回复
引用 2 楼 UR_Not_Alone 的回复:
这加个断点调试一下撒
能具体一点吗
_Kmi 2013-07-10
  • 打赏
  • 举报
回复
引用 1 楼 yyantifa 的回复:
if (caid == null)=> string.isnullorempty(caid) 改成这个试试
if语句这样格式不正确吗
夜轻风 2013-07-10
  • 打赏
  • 举报
回复
这加个断点调试一下撒
yyantifa 2013-07-10
  • 打赏
  • 举报
回复
if (caid == null)=> string.isnullorempty(caid) 改成这个试试

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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