2014-07-09 24 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後的行是不執行...... 的JOptionPane的將try塊後工作,但再算上不會被確定的價值...executeQuery(quer)不執行後的行?

回答

0

一個DELETE語句不返回ResultSet和因此您應該使用方法stmt.executeUpdate(quer);而不是stmt.executeQuery(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查詢,然後重複COUNT查詢傳遞int到一個新的變量(這個答案我會打電話給它newSize),這樣的變化DELETE所做的數將是:

int changesMade = initialSize - newSize;