我有这个错误。索引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