none
【c#】字符串的拼接 RRS feed

  • 问题

  • 根据两个参数来拼接SQL字符串,首先判断变量type,如果有值字符串为where type='type量' 其次判断key是否有值,若有值字符串为where key='key量',这里有一个问题,假如前面的type有值的话,后面的key就要变成and key='key值',反之使用字符串where key='key值'

    以下是我的拼接字符串:

     string sql=string.Format("select count(*) from tb_product {0}",(type!="")?(" where type='" + type + "'"):(key!=""&&type!="")?(" and  key="+key):( " where key="+key));

    但我总感觉这样写不太正规,不知道哪位大哥指点一下,这种拼接如何写能规范些!先谢谢了!


    煜诚海参专卖 淘宝店铺:http://jinweb.taobao.com

    2012年4月4日 9:44

全部回复

  • string sql = "select count(*) from tb_product Where 1=1 ";

    if(!string.IsNullOrEmpty(type)){

      sql+=" And type='"+type+"'";

    }

    if(!string.IsNullOrEmpty(key)){

        sql+=" And key='"+key+"' ";

    }

    ※实际开发时请记得防SQL Injection

     


    2012年4月4日 12:43
  • string sql = "select count(*) from tb_product Where 1=1 ";

    if(!string.IsNullOrEmpty(type)){

      sql+=" And type='"+type+"'";

    }

    if(!string.IsNullOrEmpty(key)){

        sql+=" And key='"+key+"' ";

    }

    ※实际开发时请记得防SQL Injection

     



    你好,还有一种情况没说明,key很有可能为空,如果为空怎么办呢?

    煜诚海参专卖 淘宝店铺:http://jinweb.taobao.com


    2012年4月8日 3:12