string sql="select  * from EatInfo where BigClass='xxx' and (Convert(double,price)  between "+m1+" and "+m2+") order by AddTime desc";m1,m2为字符型数字

解决方案 »

  1.   


        既然转为double了,m1,m2就不必再加引号了。
      

  2.   

    --不要写convertstring sql="select  * from EatInfo where BigClass='xxx' and price  between '"+m1+"' and '"+m2+"') order by AddTime desc";
      

  3.   

    --当然,单引号也可以去掉它(sql中可没有double这个东西)
    string sql="select  * from EatInfo where BigClass='xxx' and price  between "+m1+" and "+m2+") order by AddTime desc";
      

  4.   

    double改为float 或 real
    SQLServer中没有double数据类型
      

  5.   

    用zjcxc(邹建) 的方法也没行,
    我再细说一下:m1,m2是字符串,如:200,300,
    price是数据库中NVarChar类型字段,用用zjcxc(邹建) 的方法,不出错,但出来的结果不对,没查出来200-300间的产品,请大家再关注一下,谢谢!
      

  6.   

    问题解决了,谢谢,转成float 或 real可以
      

  7.   

    既然m1,m2是字符串,那这样就行了:
    string sql="select  * from EatInfo where BigClass='xxx' and (Convert(numeric(18,4),price)  between "+m1+" and "+m2+") order by AddTime desc";
      

  8.   

    问题解决了,谢谢,转成float 或 real可以