Java 在将文本字段转发到数据库之前,如何降低其值
我的问题是,在系统将数据提交到我的数据库(sql)之前,我想将txtcounts减少1,就像您在图书馆借书时,副本减少1一样,希望有人能帮助我,提前谢谢您 您可以将字符串解析为Int:Java 在将文本字段转发到数据库之前,如何降低其值,java,netbeans,Java,Netbeans,我的问题是,在系统将数据提交到我的数据库(sql)之前,我想将txtcounts减少1,就像您在图书馆借书时,副本减少1一样,希望有人能帮助我,提前谢谢您 您可以将字符串解析为Int: String sql = "Insert Into borrower (bid,bname,bbooknum,btitle,bcounts,dateb,dater) values (?,?,?,?,?,?,?)"; try { pst = cn.prepareStatement(sql);
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) {
}
最好捕获NumberFormatException
,或者替换所有其他字符:
pst.setString(5, String.valueOf(Integer.parseInt(txtcounts.getText())-1));
使用解析将字符串转换为规定的整数
pst.setString(5, String.valueOf(Integer.parseInt(txtcounts.getText().replaceAll("[^\\d.]", ""))-1));
但是请使用
try catch
覆盖代码,因为如果输入不是字符串,则此代码会生成异常,它将发出NumberFormatException
您可以将txtCounts强制转换为整数,并在完成后将其减少1。您可以将其强制转换为字符串,以便:
String str=""+(Integer.parseInt(txtcounts.getText())-1)
pst.setString(5,str);
在您的情况下:
pst.setString(5, txtcounts.getText());
或使代码更具可读性:
pst.setString(5, String.valueOf(Integer.valueOf(txtcounts.getText())-1));
请修正缩进。txtcount是多少?永远不要空捕。您的问题不清楚,无法将textfield字符串转换为整数,请将其减小,然后再转换回字符串。txtcount是一个jTextField。稍后将尝试回击您编辑:它不起作用。。Int不能转换为string这个作品谢谢你的任务我是认真的我花了6个小时才想到你是个救生员
int tempInt = Integer.valueOf(txtcounts.getText());
tempInt -- ;//reduces tempInt by one
pst.setString(5, Integer.valueOf(tempInt));