2016-04-03 27 views
0

我有这段代码,我提示用户输入depID来编辑一个部门,然后通过IF语句我已经完成它显示保存或部门doesn' t存在。现在我的问题是它直接到了else语句。当我使用调试时,我注意到RS(ResultSet)只是将用户输入的内容与表AOL的第一行进行混淆。使用ResultSet比较IF语句(JAVA)内的结果

 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); 
    } 
+0

没有办法String'staffnum'将等于ResultSet'rs'。你应该检查'staffnum'与其他值。 – KevinO

回答

0

您可以在一个周期内完成此操作。你应该使用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 
} 

这里是executeUpdate的结果:

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