我有這個錯誤。索引2超出範圍。在pst.setString(2 textField.getText(); 我怎麼能對付它SQL服務器索引超出範圍錯誤
這是我的代碼
try{
String sql="update inventory set Name=?,Category=?,Brand=?,Price=?,ExDate=?,Tags=?,Quantity=?,Barcode=? where Id=?";
pst.setString(2, textField.getText());
pst.setString(3, textField_1.getText());
pst.setString(4, textField_2.getText());
pst.setString(5, textField_3.getText());
pst.setString(6, textField_4.getText());
pst.setString(7, textField_5.getText());
pst.setString(8, textField_9.getText());
pst.setString(9, textField_6.getText());
pst.setString(1, textField_8.getText());
pst=con.prepareStatement(sql);
pst.executeUpdate();
JOptionPane.showMessageDialog(null,"Updating Item Successful","Updated",JOptionPane.PLAIN_MESSAGE);
new server().setVisible(true);
setVisible(false);
} catch(Exception e1){e1.printStackTrace();}
爲什麼它的價值,我會移動pst = con.prepareStatement(sql);在我的String聲明之後(String sql =「」),然後是setter方法。 – Ashish
我不相信所有這些列都是真正的'varchar'列。爲什麼你們都使用'setString()'呢?你應該使用適當的'setXXX()'方法傳遞值(例如'setInt()'或'setDate()'),而不是讓驅動程序隱式轉換所有內容。 –
@Ashish我只是解決了我的問題。 textField不在正確的位置。謝謝您的幫助。 – Rohan21