2014-07-09 5 views
0
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
    String del_user = JOptionPane.showInputDialog(null,"Enter the Username To be deleted  :" ,"Delete User !", JOptionPane.WARNING_MESSAGE); 

    try {  
     stmt = con.createStatement(); 
     String quer = "delete from Udet where username='"+del_user+"'"; 
     rs=stmt.executeQuery(quer); 

     int count=0; 
     while(rs.next()) 
     { 
     count++; 
    } 

    if(count==1) 
    { 
     JOptionPane.showMessageDialog(null,"The user has been deleted"); 
    } 

    else 
    { 
     JOptionPane.showMessageDialog(null,"No such User Exists"); 
    } 

    } catch(Exception e){} 


}   

QUERY EXECUTES FINE! 기록은 삭제됩니다하지만 QUERYEXECUTION 후 LINES는 JOptionPane에이 try 블록 후 작동하지만 실 거예요 결정 계수의 값이 ...executeQuery (quer)가 실행되지 않은 후 줄이 실행되지 않습니까?

답변

0

DELETE 문은 반환하지 않습니다 ... 을 실행되지 않는 ResultSet 및 따라서 대신 stmt.executeUpdate(quer); 메서드를 사용해야합니다. 쿼리에서 삭제 된 결과의 수를 확인할 수있는 방법 중 하나는 executeQuery() 메서드를 사용하여 DELETE 메서드를 사용하여 테이블에서 SELECT COUNT(*) 쿼리를 실행하는 것으로 두 테이블에 포함 된 레코드 수가 하나 인 ResultSet을 반환합니다. DELETE 전후로 실행 한 후 2 개의 숫자를 비교할 수 있습니다. 결과는 String 일 수 있지만 int integer = Integer.parseInt(String);을 사용하면 int을 얻을 수 있습니다. 코드는 다음과 같아야합니다

stmt = "SELECT COUNT(*) AS Count FROM table_name"; 
int initialSize = 0; 
rs = stmt.executeQuery(stmt); 
while(rs.next){ 
    initialSize = Integer.parseInt(rs.getString("Count"); 
} 

DELETE 쿼리를 실행 한 후 (이 대답을 내가 newSize를 호출합니다) 새로운 변수로 int를 통과하는 COUNT 쿼리 그렇게 만든 변경됩니다 DELETE을의 수를 반복 다음과 같습니다 :

int changesMade = initialSize - newSize;