【发布时间】:2021-08-26 03:23:09
【问题描述】:
当我执行此代码时,出现错误:java.sql.SQLException: Parameter index out of range (4 > number of parameters, which is 3) 发生。这段代码有什么问题?
DefaultTableModel RecordTable = (DefaultTableModel)jTable1.getModel();
if (jTable1.getSelectedRowCount()==1){
String type = jComboBox_type.getSelectedItem().toString();
String size =jComboBox_size.getSelectedItem().toString();
String qty = jSpinner1.getValue().toString();
String tot = String.valueOf(total);
String uprice = String.valueOf(price);
finaltotal = finaltotal +total;
jTextField_finaltot.setText(String.valueOf(finaltotal));
RecordTable.setValueAt(type,jTable1.getSelectedRow(),0);
RecordTable.setValueAt(size,jTable1.getSelectedRow(),1);
RecordTable.setValueAt(uprice,jTable1.getSelectedRow(),2);
RecordTable.setValueAt(qty,jTable1.getSelectedRow(),3);
RecordTable.setValueAt(tot,jTable1.getSelectedRow(),4);
String sql ="UPDATE `sales` SET `Type`=?,`Size`=?,`Unit_Price`=?',`Quantity`=?,`Total`=? WHERE `Type`=?";
try {
pst =dbConnection.getConnection().prepareStatement(sql);
pst.setString(1, type);
pst.setString(2, size);
pst.setString(3, uprice);
pst.setString(4, qty);
pst.setString(5, tot);
result =pst.executeUpdate();
} catch (SQLException ex) {
Logger.getLogger(Pizza_Menu.class.getName()).log(Level.SEVERE, null, ex);
}
}
【问题讨论】:
-
去掉所有的引号。使用 PreparedStatement 的一个原因是简化 SQL 而不必担心引号。 PreparedStatement 将为您完成。
标签: java netbeans-8