如何在将文本字段转发到数据库之前减小它的值

时间:2014-03-22 13:30:44

标签: java netbeans

 String sql = "Insert Into borrower (bid,bname,bbooknum,btitle,bcounts,dateb,dater) values  (?,?,?,?,?,?,?)";

try {
    pst = cn.prepareStatement(sql);


    pst.setString(1, txtid.getText());
    pst.setString(2, txtname.getText());
    pst.setString(3, txtbooknum.getText());
    pst.setString(4, txttitle.getText());
    pst.setString(5, txtcounts.getText());
    pst.setString(6, txtdateb.getText());
    pst.setString(7, ((JTextField)jDateChooser1.getDateEditor().getUiComponent()).getText());

    pst.execute();


    JOptionPane.showMessageDialog(null, "Book Successfully Borrowed!");

} catch (Exception e) {


}

我的问题是,我希望在系统将数据提交到我的数据库(sql)之前将txtcounts减少1,就像你在图书馆借书一样,副本减少1,希望有人可以帮助我,谢谢你提前......

3 个答案:

答案 0 :(得分:1)

您可以将String解析为Int:

  pst.setString(5, String.valueOf(Integer.parseInt(txtcounts.getText())-1));

最好是抓住NumberFormatException,或者替换所有其他字符:

 pst.setString(5, String.valueOf(Integer.parseInt(txtcounts.getText().replaceAll("[^\\d.]", ""))-1));

答案 1 :(得分:0)

使用解析将String转换为整数TimH陈述

String str=""+(Integer.parseInt(txtcounts.getText())-1)
pst.setString(5,str);

但是使用try-catch覆盖您的代码,因为如果输入不是字符串,则此代码可以生成异常NumberFormatException

答案 2 :(得分:0)

您可以将txtCounts转换为Integer,并在完成之后将其缩小一次,然后将其转换为字符串,以便:

pst.setString(5, txtcounts.getText());

成为你的案子:

pst.setString(5, String.valueOf(Integer.valueOf(txtcounts.getText())-1));

或使代码更具可读性:

int tempInt = Integer.valueOf(txtcounts.getText());
tempInt -- ;//reduces tempInt by one 
pst.setString(5, Integer.valueOf(tempInt));