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

解决方案 »

  1.   

    1、接到的是一个对象,可以.ToString(),或者Convert.To..()所需要的类型
    2、Char.IsNumber 方法  [C#]
    指示指定的 Unicode 字符是否属于十进制数字或十六进制数字类别。
    [C#] public static bool IsNumber(char);
    指示指定字符串中位于指定位置处的字符是属于十进制数字类别还是属于十六进制数字类别。
    [C#] public static bool IsNumber(string, int);
      

  2.   

    Request["ID"]的类型都是字符型,可以直接当做字符串使用,也可以转成其它类型再使用。
    可以用int string.Compare(string a, string b)来判断字符串里是否有非法字符