suppression d'une ligne dans une DB(modifier)
salut tous,
je travail sous vista avec eclipse BD : mysql.
je suis sur un TP java : gestion de Stock d'un depot...
j'ai ue des difficultés à réaliser l'affichage des données de ma BD sur un JTable mais j'ai trouver enfin la solution...
pour avoire une idée :
disant 05 colonnes au niveau de la BD:
id : c'est un int et Auto_Increment;
col1 ,col2,col3,col4 tous des: varchar;
à l'affichage j'ai décidé de ne pas afficher le id sur le JTable.
mon probleme se situe lors de la suppression lors de la suppression d'une ligne sur le JTable :
1. en choisisant la ligne destinée à etre supprimer ,puis en clickant sur le bouton sup : ---> aucune erreur la ligne est en effet supprimer au niveau de la base de donnée...mais elle rien ne se passe sur le JTabel en temps réel --> il faut :fermer/réouvrire la fenetre pour se rendre compte que la ligne choisie a bien était supprimer...
bon çà c'est pas mon plus gros probleme mais j'aimerais bien le resoudre...merci
2. j'ai mis la colonne des Primary key (id) AUTO_INCREMENT j'ai 04 autre colonne
-disant que j'ai : n (rows)
-je supprime le row avec l'id : n-3 ...cela s'effectue sans probleme.
- mais sur le nouveau tableau j'ai cela:
id : n-5
id: n-4
id: n-2 *********
id: n-1
id: n
- je veut rendre le (id: n-2) en (id: n-3) et ainsi de suite ==> (id: n-1) en (id: n-2)...
sans pour autaun affecté les autres colonnes du row
- c'est à dire : decrémenté tous les rows se trouvant aprés le row supprimé
comme je travaille avec java
j'ai essayé avec cette methode
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
//methode delButton
private void delButtonActionPerformed(ActionEvent evt) {
int select = stockTable.getSelectedRow() + 1;
String sql="";
String sql2 = "";
try{
sql=" DELETE FROM tab_bas " +
"WHERE id = " + 'select';
stmt.executeUpdate(sql);
sql2 = "SELECT id FROM tab_bas";
ResultSet rs = stmt.executeQuery(sql2);
int cmp1 = 0;
int cmp2 = 1;
int selCmp1 = 0;
int selCmp2 = 0;
while(rs.next())
{
selCmp1 = select2 + cmp1 ;
selCmp2 = select2 + cmp2;
stmt.addBatch("UPDATE tab_bas SET "
+ "id = "+ 'selCmp1' + "WHERE id = "+'selCmp2');
cmp1++;
cmp2++;
}
int[] nb = stmt.executeBatch();
//
//initComponents();
}
catch(Exception e){
commentLabel.setText("Error occurred in inserting data");
e.printStackTrace();
}
} |
malheureusement le resultat n'est toujours pas probant
je sais que c'est un peut long...mais ... merci d'avance pour votre passiance