【发布时间】:2016-04-03 17:40:10
【问题描述】:
我有这段代码提示用户输入 depID 以编辑部门,然后通过我完成的 IF 语句显示已保存或部门不存在。现在我的问题是它直接进入 else 语句。当我使用调试时,我注意到 RS (ResultSet) 只是将用户输入到 AOL 表的第一行。
try{
String value1 = txt_depID.getText();
String value2 = txt_depName.getText();
String sql = "Update tblDepartment set depID = '"+value1+"' , depName = '"+value2+"' where depID = '"+value1+"'";
String sql1 = "Select depID, depName from tblDepartment";
Class.forName(driver);
conn = DriverManager.getConnection(url);
ps = conn.prepareStatement(sql1);
rs = ps.executeQuery();
ps = conn.prepareStatement(sql);
ps.execute();
if(rs.next()){
String depi = rs.getString("depID"); //Issue: only reading first row
if(depi.equals(value1)){
JOptionPane.showMessageDialog(null, "Entry Saved");
}
else{
JOptionPane.showMessageDialog(null, "Department doesn't exist");
}
}
} catch (Exception e){
JOptionPane.showMessageDialog(null, e);
}
【问题讨论】:
-
String
staffnum不可能等于 ResultSetrs。您应该检查staffnum与其他值。