disrate> '" + sprate+"'";
试试。我奉劝你一句。不要管他是什么类型的。最好都要加''引起来。
即使你不引。
数据库也会先把参数转换成string型然后在入库的。

解决方案 »

  1.   

    strSql = " update good set disrate = '" + sprate +"'\n"
           + " where id = '" + id + "' \n"                             
           + " and disrate>'" + sprate+"'";
    如果是在ORACLE里面这个语句是肯定不会报错的,INT型的数据会自动转换
      

  2.   

    no 楼上错了。oracle的时候不要分行。否则会报错。
      

  3.   

    我平時用mssql都沒有發現這個問題,是否關decode問題,因為我用big5,多謝.
      

  4.   

    很可能你的id里有“'” 导致最后生成的语句变成where id = 'i'd' and disrate>96   这个样子
      

  5.   

    where id = '"+id+"' and disrate>"+sprate
      

  6.   

    路过,根据经验,应该是取到的disrate 值为空,输出disrate 看看
      

  7.   

    willand(Bill)是啊.謝謝你啊...你幫我一個大忙,感激.散分,人人有分.謝謝各位!!!
      

  8.   

    阿,還有一個小小問題,就是我怎樣查到db中有" ' "號的id啊,"select * from product where pro_id like '%'%'"這樣不行啊.請問怎樣寫啊.這個.謝謝.
      

  9.   

    你可以在数据库企业管理器上执行一下这个sql看看结果不久可以了吗。
      

  10.   

    对字段里含 " ' "的情况进行转义就行了,
    一个'号就变成两个引号''select * from product where pro_id like '%''%'
      

  11.   

    哦,还有就是可以用prepareStatement
    然后用setParameter的方式如:
    select * from product where pro_id like '%?%'
    setString(1,str);