Suppression d'une ligne de jTable de la base de donnés mysql(netbeans)

nadialadypower Messages postés 3 Date d'inscription jeudi 12 mai 2011 Statut Membre Dernière intervention 24 avril 2012 - 6 avril 2012 à 16:37
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 6 avril 2012 à 17:07
bonjour
j'ai un problème avec netbeans6.9.1 et les requêtes mysql
bon je viens de créer un interface graphique qui contient un jTable, je charge la base de données mysql dans jTable jusqu'au là j'ai pas de problème mais quand je clique sur une ligne de jTable pour la supprimer ça marche juste au niveau de jTable mais elle n'est pas supprimé de la base de données,normalement la requête delete est juste, je suppose c'est parce que la ligne n'est pas sélectionnée (car la methode jTable1.getSelectedRow() retourne -1)
voici le code source:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = (Connection) DriverManager.getConnection("jdbc:mysql:///emp", "root", "");
Statement st= (Statement) con.createStatement();

((DefaultTableModel)jTable1.getModel()).removeRow(jTable1.getSelectedRow());

int ligneSelectionne = jTable1.getSelectedRow();
System.out.println("la ligne selectionée est:"+ligneSelectionne);//affiche -1

int rs =st.executeUpdate( "DELETE FROM materiel WHERE Num_Serie="+ligneSelectionne);

if(!con.isClosed())
System.out.println("Successfully connected to " +
"MySQL server ");

} catch(Exception e) {
System.err.println("Exception: " + e.getMessage());
} finally {
try {
if(con != null)
con.close();
} catch(SQLException e) {}
}

2 réponses

dvwyns Messages postés 159 Date d'inscription mardi 2 janvier 2007 Statut Membre Dernière intervention 7 mai 2012
6 avril 2012 à 17:00
Salut,

Tu as du manquer d'attention, mais tu te trouves dans la partie javascript du forum.
Mais je pense avoir détecter ton problème.
((DefaultTableModel)jTable1.getModel()).removeRow(jTable1.getSelectedRow());
int ligneSelectionne = jTable1.getSelectedRow(); 


Tu "remove" la ligne et puis tu veux récupérer la ligne selectionnée (que tu viens de "remover").
En toute logique, c'est le contraire que tu dois faire puisque tu perds le focus sur la ligne en la supprimant.
int ligneSelectionne = jTable1.getSelectedRow();
((DefaultTableModel)jTable1.getModel()).removeRow(jTable1.getSelectedRow());
System.out.println("la ligne selectionée est:"+ligneSelectionne);


Enjoy
0
BunoCS Messages postés 15475 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 23 avril 2024 103
6 avril 2012 à 17:07
Hello,
Tu as du manquer d'attention, mais tu te trouves dans la partie javascript du forum.

Non, c'est posté dans la section "Un bug sur CS", c'est pire!
Pour une question java, merci de poster dans la section Java!
Je déplace.


@+
Buno, Admin CS
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
Rejoignez-nous