2016-04-03 24 views
0

ile karşılaştırmak için ResultSet'i kullanma Bir kullanıcının bir bölümü düzenlemek için depID'ye girmesini istediğim bu kod parçasına sahibim ve daha sonra yaptığım IF bildirimi yoluyla kaydedilmiş veya bölüm yok 'ifadesini görüntüler var. Şimdi benim problemim doğrudan başka bir ifadeye gitmesi. Hata ayıklama kullandığımda, RS'nin (ResultSet) yalnızca kullanıcıların AOL olan tablonun ilk sırasına girişini kontrol ettiğini fark ettim.Sonuç Bildirimi (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

Bir String 'staffnum' ResultSet' rs' ile eşit olacak şekilde bir yol yoktur. Başka bir değere karşı 'staffnum' kontrol etmelisin. – KevinO

cevap

0

Bunu tek bir döngüde yapabilirsiniz. executeUpdate kullanıyor olmalısınız.

İade: ya (1) SQL Veri İşleme Dili (DML) tabloların veya SQL deyimleri için (2) 0 Satır sayısı hiçbir şey

dönmek İşte
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 
} 

sonuçları executeUpdate ne