【问题标题】:Using ResultSet to compare result within IF Statement (JAVA)使用 ResultSet 在 IF 语句 (JAVA) 中比较结果
【发布时间】: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 不可能等于 ResultSet rs。您应该检查 staffnum 与其他值。

标签: java sql resultset


【解决方案1】:

您可以在一个周期内完成此操作。你应该使用executeUpdate

String sql = "Delete from tblEmployee where staffNo=?";
String sql1 = "Select * from tblEmployee";
Class.forName(driver);
conn = DriverManager.getConnection(url);
ps = conn.prepareStatement(sql1);
int result = ps.executeUpdate();
if (result > 0) {
   // success
}

执行更新的结果如下:

返回:(1) SQL 数据操作语言的行数 (DML) 语句或 (2) 0 用于不返回任何内容的 SQL 语句

【讨论】:

    猜你喜欢
    • 2019-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-07
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 2023-03-03
    相关资源
    最近更新 更多