【问题标题】:Refresh page when delete row from database从数据库中删除行时刷新页面
【发布时间】:2015-05-21 08:33:01
【问题描述】:

我有一个“treinkoverzicht.java”,它可以制作一个表格,从我的 SQL 数据库中获取一些信息。

您可以在 AdminScherm.java 中看到 select 查询(请参阅下面的 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();

【问题讨论】:

    标签: java database


    【解决方案1】:

    您需要在数据库查询后手动从表中删除“treinkoe​​rier”。

    顺便说一句:保持你的代码和你的数据库一样,我更喜欢英文!

    【讨论】:

    • 感谢您的回答!我们要试试。下次我们保持英语;)
    • 好的,成功了! :P Als je nog vragen hebt hoor ik het graag。附言Zou je het antwoord als 'Answer' willen vinken?
    猜你喜欢
    • 2018-04-25
    • 1970-01-01
    • 2015-08-09
    • 2019-03-18
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多