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,希望有人可以帮助我,谢谢你提前......
答案 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));