个人使用,不考虑安全问题。 例: index.aspx?id=bianhao>3 我要传递的值是bianhao>3,然后通过数据库搜索相关记录,但是失败了 nbianhao = Request.Params["id"].ToString(); SELECT * FROM shujuku WHERE '"+nbianhao+"' 应该如何解决啊?谢谢哇~我用textbox控件接收了一下传递来的参数,确实是bianhao>3啊,就是数据库没反映,怎么回事啊?

解决方案 »

  1.   

    你连接字符串有正确执行吗,还是只是赋值给一个string……
      

  2.   

    string sql = "SELECT * FROM shujuku WHERE "+nbianhao+";
    去掉引号试试的
      

  3.   

    SELECT * FROM shujuku WHERE '"+nbianhao+"' 
    你的字段呢:
    正确的:SELECT * FROM shujuku WHERE [字段]='"+nbianhao+"' 
      

  4.   

    楼主的问题很明显在于给where后边的条件都加了单引号,如果你的bianhao列数据类型是数值类,则可以:
    nbianhao = Request.Params["id"].ToString(); 
    SELECT * FROM shujuku WHERE "+nbianhao; 你说不考虑安全问题那就不提这种方式可能引来的sql注入攻击了================================
    ASP.NET WebForm和ASP.NET MVC分页最终解决之道
      

  5.   

    你可以把sql字符串输出来看一下,如果没有错的话,放在查询分析器里执行一下,
    再弄到程序里,就应该不会错了,我一般是这么调的……
      

  6.   

    去掉单引号。另外 5楼说的对,这么写确实很不规范,很容易被sql注入。