我正在使用MS Access数据库并且我最终确定插入和删除查询哪些工作正常,但为什么更新查询不起作用请帮忙?
插入代码:
try {
ps=oon.prepareStatement("insert into Student(Studentid,Studentname,Age,Contactno, Degreeprogram)values(?,?,?,?,?)");
ps.setString(1,jTextField1.getText());
ps.setString(2,jTextField2.getText());
ps.setString(3,jTextField3.getText());
ps.setString(4,jTextField4.getText());
ps.setString(5,jComboBox1.getSelectedItem().toString());
JOptionPane.showMessageDialog(null, "Inserted");
ps.executeQuery();
} catch(Exception ex){}
并删除:
try {
ps=oon.prepareStatement("DELETE from Student WHERE Studentid=?");
ps.setString(1, jTextField5.getText());
JOptionPane.showMessageDialog(null, "Deleted");
ps.executeQuery();
} catch(Exception ex){}
更新代码(来自评论):
try{
ps=oon.prepareStatement("UPDATE Student set Studentid=?,Studentname=?,age=?,Contactno=?,Degreeprogram=? WHERE Studentid="+Integer.parseInt(jTextField1.getText()));
ps.setString(2, jTextField2.getText());
ps.setString(3, jTextField3.getText());
ps.setString(4, jTextField4.getText());
JOptionPane.showMessageDialog(null, "Update"); ps.executeQuery();
// TODO add your handling code here:
}
答案 0 :(得分:2)
您没有设置参数1和5,因此很可能是抱怨参数1和/或5未设置。你不应该像你正在做的那样吞下异常,你应该让异常气泡/传播到一个可以处理异常的层,或者至少打印或者如果应用程序不能(或不想)那么记录异常采取纠正措施。
此外,我强烈建议您将{WHER条款WHERE Studentid="+Integer.parseInt(jTextField1.getText())
替换为WHERE Studentid=?
并添加ps.setInt(6, Integer.parseInt(jTextField1.getText()))
。