2015-05-21 52 views
0

我有'treinkoverzicht.java',它使得表格從我的SQL數據庫中獲取一些信息。當從數據庫刪除行時刷新頁面

您可以在AdminScherm.java中看到選擇查詢(請參閱下面的AdminScherm.java)。

問題是:如果我點擊刪除按鈕(稱爲:verwijder),它會刪除我的數據庫(刪除查詢)的記錄,當然沒問題。但它並不直接更新我的屏幕,因此它看起來像刪除的行仍在表和數據庫中。 像按((verwijder)刪除按鈕時直接刷新我的頁面一樣。

(treinkoverzicht.java),如下:/

@Override 
public void actionPerformed(ActionEvent e) { 
if ("Bekijk foto".equals(e.getActionCommand())) { 
     JButton btn = (JButton) e.getSource(); 
     BekijkFoto b = new BekijkFoto(koeriers.get(Integer.parseInt(btn.getName()))); 
     b.setVisible(true);z 

    } else if ("Verwijder".equals(e.getActionCommand())) { 
     JButton btn = (JButton) e.getSource(); 
     int keuze1 = JOptionPane.showConfirmDialog(
      this, 
      "Weet u zeker dat u deze treinkoerier wilt verwijderen?", 
      "Verwijderen", 
      JOptionPane.YES_NO_OPTION); 
     if (keuze1 == JOptionPane.YES_OPTION) { 
      try { 
       stmt = con.createStatement(); 
       String verwijderenkoerier = "DELETE FROM coerier WHERE CoerierID=" + koeriers.get(Integer.parseInt(btn.getName())).getId(); 
       stmt.executeUpdate(verwijderenkoerier); 
       stmt.close(); 
      } catch (SQLException a) { 
       System.out.println("Statement kan niet worden uitgevoerd."); 
      } 
     } 
    } 
} 

只要的actionPerformed()變爲AdminScherm.java應該重新加載自己的查詢。

(AdminScherm.java),如下:/

treinO = new TreinKOverzicht(this); 

String sqlkoerier = "SELECT * FROM coerier"; 
try { 
    stmt = con.createStatement(); 
    ResultSet rs = stmt.executeQuery(sqlkoerier); 

    while (rs.next()) { 
    int id = rs.getInt("CoerierID");//aangepast 
    String naam = rs.getString("FirstName"); 
    String achternaam = rs.getString("LastName"); 
    String email = rs.getString("Email"); 
    int telefoonnummer = rs.getInt("Telephone"); 
    int kmreward = rs.getInt("KmReward"); 

    TreinKoerier t = new TreinKoerier(id, naam, achternaam, email, telefoonnummer, kmreward);//aangepast 
    treinO.voegTreinKToe(t); 
    } 
} catch (SQLException sd) { 
    System.out.println("Statement kan niet worden uitgevoerd."); 
} 
treinO.printTabel(); 

回答

0

您需要從表中的數據庫查詢後手動刪除 「treinkoe​​rier」。

BTW:保持你的代碼與你的數據庫一樣,我更喜歡用英文!

+0

感謝您的回答!我們要試試它。下次我們保持英語;) – voetbal93

+0

好的,成功了! :P Als je nog vragen hebt hoor ik het graag。 P.S. Zou je het antwoord als'Answer'willen vinken? –