我现在想向一个表中插入数据,数据库中有两个字段是money类型的,我在actionform中把他们定义成double类型。
  private Double proprice;
  private Double promoney;

我的DAO是这样的:
public int inserttousu(Tousu s){
String sql="INSERT INTO Product(proprice,promoney)values(?,?)";
Connection con=null; int k=0;
try{
con = DatabaseConnection.getConnection();
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setDouble(1, s.getProprice());
pstmt.setDouble(2, s.getPromoney());
           
k=pstmt.executeUpdate();
tomcat5.5报错:java.sql.SQLException: 不允许从数据类型 varchar 到数据类型 money 的隐性转换(表
'hetong.dbo.Product',列 'proprice')。请使用 CONVERT 函数来运行此查询。这个问题该怎么解决啊,求大虾们,帮忙啊!

解决方案 »

  1.   

    报错哪行???你先把 s.getProprice() 和 s.getPromoney() 打印出来看看
      

  2.   

      钱用 double 类型 ,在用的时候在 format(0 ,'###,###,##0.00'); ok
      

  3.   

      数据库用double (数据类型 varchar 到数据类型 money 的隐性转换)!!!!
      

  4.   

    你看一下在映射文件中proprice是配置成了什么类型?
      

  5.   

    估计s.getProprice()和s.getPromoney()中含有字符串,将字符串去掉,特别是检查下含有空格不
      

  6.   

       不好意思,数据库中用number . 
      

  7.   

    那就用他提示的CONVERT 函数来转换啊
      

  8.   

    1。可以调试啊,查看的的信息。看具体错在哪里
    2.可以用convert 转换使用啊
      

  9.   

    谢谢大家,把数据库改成numeric类型了,问题解决了。