在我的項目中,我使用了txtAdvance的關鍵事件。
第1行的列'advance'被截斷MySql數據
double gtotal = Double.parseDouble(txtGtotal.getText());
double ad = Double.parseDouble(txtAdvance.getText());
double due = gtotal - ad;
txtDue.setText(String.valueOf(due));
和第三行的運行後,我添加了一個Save按鈕保存這些數據。下面給出的是該查詢。
public void saveInvoice(JTextField txtgtotal, JTextField txtAdvance, JTextField txtDue, JTextField txtInID) {
try {
db.putData("INSERT INTO indetails(inid, gtotal, advance, due) VALUES('" + txtInID.getText() + "' ,'" + txtgtotal.getText() + "' , '" + txtAdvance.getText() + " ' " + " , '" + txtDue.getText() + "') ");
JOptionPane.showMessageDialog(null, txtAdvance.getText());
JOptionPane.showMessageDialog(null, "Invoice details saved");
}
catch (Exception e) {
JOptionPane.showMessageDialog(null, this.getClass().getName() + " first " + e);
}
}
我在第1行爲'advance'列截斷了MySql數據。 advance的數據類型是Double。但我找不到一種方法來放長度。
(作爲一個例子
列名:獨立同分布,數據類型:int(18){主鍵}
列名:INID,數據類型:int(18)
列名:gtotal ,數據類型:雙
列名:預先,數據類型:雙
列名:由於,數據類型:雙
)
我正在使用MySQL查詢瀏覽器。問題是當我向txtAdvance添加0值時出現此錯誤。
我正在使用JDBC連接。 – Dilini
'putData'方法是什麼?你爲什麼不使用'PreparedStatement'? – agad
Your PreparedStatement應該看起來像這樣:''INSERT INTO indetails(inid,gtotal,advance,due)VALUES(?,?,?,?)',你應該使用'setDouble(2,ad)'設置'advance'列。 – agad