QueryString传值无法找到数据源问题

     今天在想完善一下以前做的小的购物系统,在查看订单方面本来使用两个页面分别显示“订单”和“订单内容”这样管理员查看十分不方便。于是我构思了一下,在显示“订单”的GridView中添加一个HyperLink控件,通过点击HyperLink将订单号传给“订单内容”的控件中去,然后在下一个GridView中显示此订单中的相关内容

     很快,在HyperLink的NavigateUrl属性中添加NavigateUrl='<%# Eval("ID", "~/OrderAdMin/Order.aspx?OrderID={0}") %>' 并在显示订单内容的数据源控件中设置好使用QueryString方法,数据源字段为“OrderID”,并将两者分别放在Web用户控件中,最后把两个用户控件放入一个ASPX页面中。

     运行~却发现在报“无法找到OrderID”的错误,可是我没有点击Hyperlink,当然是没有的咯。因为以前做产品目录的时候使用过这样的传值方法,当时一点问题也没有,可是这里怎么会出错呢?

     通过断点检测,我发现,做目录是传的值是int型的数值,在没有点击相关按钮时,默认值是“0”,而这次的OrderID使用字符、数值拼接起来的字符串,字符串的初始值是Null,当“0” 进入查询语句时由于没有匹配项,所以当然返回空,所以不会有问题,但是如果把Null传进去的话,SQL语句就会报没有数据源的错了。

     为了避免出现这样的问题,于是我在包装底层方法的业务逻辑层的相关方法添加一个控制语句

if (orderid==null)
      orderid 
= "";

 

这样,当第一次打开页面时如果为Null的话就会赋为“”,进去查询后无匹配就会返回空~

 

转载于:https://www.cnblogs.com/xuyinjie/articles/1609058.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值