【发布时间】:2014-02-21 10:45:17
【问题描述】:
我正在使用 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:
}
【问题讨论】:
-
你正在扔掉你的
Exception ex。不要那样做,if规范很可能在那里。你为什么要抓住完整的Exception?总是抓住一个子类。 -
我正在 jframe 上进行这些编码。插入和删除按钮上的这些查询但更新查询不起作用?
-
这是更新代码,但不工作 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, "更新"); ps.executeQuery(); // TODO 在此处添加您的处理代码:}
-
因此,您的更新查询无法正常工作。您向我们展示的是插入和删除查询,它们工作正常。所以我们必须猜测你的更新查询是做什么的以及问题是什么。
-
ps.setString(2):你不认为第一个参数也必须定义吗?还有第五个?你为什么不阅读你得到的异常的堆栈跟踪?它会告诉你的。