问题:我想通过在表单中输入补交费用来更改数据库表中两个字段的值.这两个字段分别是amount(交费总额)和qfamount(欠费总额),用学号来作为条件更新数据,下面的代码没有能改变数据表中的值,这是为什么?
String snumber = new String(request.getParameter("check").getBytes("ISO8859_1"),"GBK");
String chkmoney = new String(request.getParameter("checkmoney").getBytes("ISO8859_1"),"GBK"); 
 sql="update students set amount=?, qfamount=qfamount-? where Snumber=?";//qfamount是欠费额
 PreparedStatement prepstmt =null;
 prepstmt=con.prepareStatement(sql);
 prepstmt.setBytes(1,chkmoney.getBytes("GB2312"));
         prepstmt.setBytes(2,chkmoney.getBytes("GB2312"));
 prepstmt.setBytes(3,snumber.getBytes("GB2312"));  prepstmt.executeUpdate();

解决方案 »

  1.   

     qfamount=qfamount-?qfamount-这个东西去掉
      

  2.   

    sql="update students set amount=?, qfamount=? where Snumber=?";这一句改喽,试试
      

  3.   

    这样能实现自减吗?我要的效果是如果我补交了学费,那么学费总额会被chkmoney所修改,同时以前欠费的值也要被修改,你这样写不能实现它的正确修改,还有其它的办法吗?
      

  4.   

    sql="update students set amount=?, qfamount=qfamount-? where Snumber=?";
    PreparedStatement prepstmt =null;
    prepstmt=con.prepareStatement(sql);
    prepstmt.setDouble(1,123);
    prepstmt.setDouble(2,123.123);
    prepstmt.setString(3,"SN123");
    prepstmt.executeUpdate(); LZ还是看看基础书吧,这都是基础问题