2016-04-03 28 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語句的行數不返回任何內容