简体   繁体   English

从数据库中删除行时刷新页面

[英]Refresh page when delete row from database

I have 'treinkoverzicht.java' which makes an table what get some information from my SQL database. 我有“ treinkoverzicht.java”,它使一个表从我的SQL数据库中获取一些信息。

You can see the select query in AdminScherm.java (see: AdminScherm.java below). 您可以在AdminScherm.java中看到选择查询(请参阅下面的AdminScherm.java)。

The problem is: If i'm click on the delete button(called: verwijder), it deletes the record out of my database (Delete query), that is ok of course. 问题是:如果我单击删除按钮(称为verwijder),它将记录从我的数据库中删除(删除查询),这当然可以。 But it doesn't update my screen directly, so it looks like the deleted row is still in the table and database. 但是它不会直接更新我的屏幕,因此看起来删除的行仍在表和数据库中。 Like a refresh of my page direct when you push the (verwijder) delete button. 就像在按下(verwijder)删除按钮时直接刷新页面一样。

(treinkoverzicht.java) , below: / (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.");
            }
        }
    }
}

As soon as the actionPerformed() goes in AdminScherm.java should reload his queries. 一旦actionPerformed()进入AdminScherm.java,它将重新加载他的查询。

(AdminScherm.java) , below: / (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();

You need to remove the "treinkoerier" manually from the table after the database query. 查询数据库后,需要从表中手动删除“ treinkoe​​rier”。

BTW: Keep your code the same as your database, I prefer both in english! 顺便说一句:保持您的代码与数据库相同,我更喜欢用英语!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM