为什么java更新查询不起作用?

时间:2014-02-21 10:45:17

标签: java ms-access netbeans

我正在使用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: 
} 

1 个答案:

答案 0 :(得分:2)

您没有设置参数1和5,因此很可能是抱怨参数1和/或5未设置。你不应该像你正在做的那样吞下异常,你应该让异常气泡/传播到一个可以处理异常的层,或者至少打印或者如果应用程序不能(或不想)那么记录异常采取纠正措施。

此外,我强烈建议您将{WHER条款WHERE Studentid="+Integer.parseInt(jTextField1.getText())替换为WHERE Studentid=?并添加ps.setInt(6, Integer.parseInt(jTextField1.getText()))