2016-04-03 15 views
0

このコードを使用して、部門を編集するためにdepIDを入力し、IFステートメントを実行して保存したか、存在しません。今私の問題は、それが直接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

文字列 'staffnum'がResultSet' rs'と等しくなることはありません。他の値と比較して 'staffnum'をチェックする必要があります。 – KevinO

答えて

0

これは1回のサイクルで実行できます。 executeUpdateを使用してください。

戻り値:いずれか(1)SQLデータ操作言語 (DML)文またはSQL文の(2)0の行数は何

を返さない。ここ
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のものです
関連する問題