2016-04-03 8 views
0

Ich habe diesen Codeabschnitt, wo ich den Benutzer auffordern, die DEPID eingeben, um eine Abteilung zu bearbeiten, und dann durch die IF-Anweisung, die ich entweder gespeichert oder Abteilung zeigt angezeigt Es existiert. Jetzt ist mein Problem, dass es direkt zur else Aussage geht. Als ich das Debugging benutzte, bemerkte ich, dass der RS ​​(ResultSet) nur die Benutzereingabe mit der ersten Zeile der Tabelle, die AOL ist, vergleicht.Verwenden von ResultSet, um Ergebnis in IF-Anweisung (JAVA) zu vergleichen

 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

Es gibt keine Möglichkeit, dass ein String 'staffnum' dem ResultSet' rs' entspricht. Sie sollten "staffnum" gegen einen anderen Wert überprüfen. – KevinO

Antwort

0

Sie können dies in einem Zyklus tun. Sie sollten executeUpdate verwenden.

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 
} 

Hier ist, was Ergebnisse executeUpdate:

Returns: entweder (1) die Zeilenanzahl für SQL Data Manipulation Language (DML) Aussagen oder (2) 0 für SQL-Anweisungen, die nichts zurückgeben