大哥们:1、在datagrid中绑定某个列,内容shownew.aspx?ID={0}在shownew.aspx中,请问接收到的Request["ID"],这个值是数值型 还是字符串型?为什么?
2、为了防止别人在www.abc.com/shownew.aspx?id=88 后面加一个' < 等非法字符,进入sql注入。我想,如果接收到值是数值型就正常操作,如果不是的话,就提示框提示:请不要非法提交字符这个功能如何做?????????听说用(IsNumeric(Request.QueryString["ID"]))没用过,不知有用吗?还有别的方法吗??
&&&&&&&&&&&&50分,,问个很简单的问题?URL参数判断问题?&&&&&&&&&&&&&&谢!

解决方案 »

  1.   

    Request.QueryString["ID"])
    得到的是STRING,你可以进行判断啊上面说的IsNumeric可以的
      

  2.   

    Request.QueryString["ID"])
    不过有可能是
    NOTHING 的所以在判断前加判断IF NOT Request.QueryString["ID"])
     IS NOTHING
      

  3.   

    1. 字符串型 ,因为url本身就只是一个字符串2. string tmp = Request.QueryString["ID"];
      你要怎么判断都可以
      

  4.   

    我一般是clng(trim(request.querystring("id")))这样换成长整型,就没事了,是注入不了的
      

  5.   

    第一得到的是string类型。
    第二 string strid=Request.QueryString["id"];
         strid.ToString().Trim().Replace("'","").Replace("<","").Replace(">","");
      

  6.   

    楼上的,你用这么多replace来判断数字型的,会不会有问题:)
      

  7.   

    再顶一下,还有更好的招吗??
    有人用try{}
    catch{}
      

  8.   

    try{}
    catch{}来处理异常的,速度不如来判断是不是数字型的。异常只有在不能判断的情况下才使用的。
      

  9.   

    Request.QueryString["ID"]) 是字符类型在重要的页面最好对每个querystring的参数都进行有效性判断
    如一般传输的都是数字,或者是字母
    那只要在页面的page_load中 判断参数是否都为参数,或者都为字母即可。。