java.sql.SQLException:参数索引超出范围(1>参数数量,为0)ERROR

问题描述:

我有我的项目,它是一个驾驶执照数据库。java.sql.SQLException:参数索引超出范围(1>参数数量,为0)ERROR

当用户填写字段时,这是正常的,但是当用户按下“提交”按钮时,一切都搞乱了。

The error Parameter index out of range错误显示,所以这是我的代码。

private void submitButtonActionPerformed(java.awt.event.ActionEvent evt) {            

    String sql = "INSERT INTO dr_record_table (Driver's ID, Last Name, First Name, Middle Name, Street, Barangay, City/Municipality, Province, Country, Month, Day, Year, Gender) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 

    try { 
     pst = conn.prepareStatement(sql); 
     pst.setString(1, idTxtFld.getText()); 
     pst.setString(2, lnTxtFld.getText()); 
     pst.setString(3, fnTxtFld.getText()); 
     pst.setString(4, mnTxtFld.getText()); 
     pst.setString(5, saTxtFld.getText()); 
     pst.setString(6, baTxtFld.getText()); 
     pst.setString(7, caTxtFld.getText()); 
     pst.setString(8, paTxtFld.getText()); 
     pst.setString(9, cntryTxtFld.getText()); 
     pst.setString(10, String.valueOf(monthCBox.getSelectedItem())); 
     pst.setString(11, String.valueOf(dayCBox.getSelectedItem())); 
     pst.setString(12, String.valueOf(yearCBox.getSelectedItem())); 
     pst.setString(13, getSelectedButtonText(bg)); 
     pst.execute(); 

     JOptionPane.showMessageDialog(null, "Entry Saved!"); 

    } catch (SQLException | HeadlessException e) { 
     JOptionPane.showMessageDialog(null, e); 
    } 

} 

将单引号转义为Driver's ID。类似的,

String sql = "INSERT INTO dr_record_table (Driver''s ID, Last Name, " 
    + "First Name, Middle Name, Street, Barangay, City/Municipality, " 
    + "Province, Country, Month, Day, Year, Gender) VALUES " 
    + "(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 
+0

谢谢先生!我终于修好了这个! :) –