Mise a jour de l'identidiant
abayekhizi
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
bonjour! j'ai un petit soucis qui me tracasse. Je developpe actuellement une application de gestion de stock. Je voudrais mettre a jour les ID de chaque produit ( qui ne sont pas des clés primaires) aprés suppression d'un produit.
exemple:
initiallement j'ai cette liste de produits
1 Coca Cola
2 Fata
3 Red Bull
apres suppression de Fata je dois obtenir ceci
1 Coca Cola
2 Red Bull
Voici mon code mais ca ne marche pas correctement
exemple:
initiallement j'ai cette liste de produits
1 Coca Cola
2 Fata
3 Red Bull
apres suppression de Fata je dois obtenir ceci
1 Coca Cola
2 Red Bull
Voici mon code mais ca ne marche pas correctement
for (int var=0; var < lsAdresse; var++){
JOptionPane.showMessageDialog(null," debutttttttttttt");
int var1=var+1;
String lsSQL2="select num from entre where num_facture='"+nf1.getText()+"' LIMIT "+var+",1";
Statement state1 = con.createStatement();
int lsAdresse8 = 1;
ResultSet result1 = state.executeQuery(lsSQL);
result1.next();
lsAdresse8 = result1.getInt(lsAdresse8);
int var3=8;
String lsSQL1 = " update entre set num="+var1+" where num_facture='"+nf1.getText()+"' and num="+lsAdresse8+" ";
int res8 = s4.executeUpdate(lsSQL1);
table();
JOptionPane.showMessageDialog(null," finnnnnnnnnnnn");
}
A voir également:
- Mise a jour de l'identidiant
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Mise a jour kindle - Guide
- Mise à jour libre office - Accueil - Bureautique
1 réponse
Bonjour,
Je ne comprends pas bien ton code...
Déjà il faudrait faire des PreparedStatement pour éviter l'injection SQL, d'autre part num_facture est a priori une clé donc à quoi sert le LIMIT ?
D'ailleurs si c'est un numéro pourquoi mettre des String ? Tu dois choisir de manière adaptée les types de données que tu manipules.
Quant à ton décalage, ça ressemble à une mauvaise idée, effectivement pour l'utilisateur c'est peut-être utile dans l'interface graphique, mais ça ne sert à rien de persister cette donnée en base, il faut juste faire un mapping côté Java pour que lorsque tu requêtes la valeur "2" dans ton interface graphique cela corresponde au num "12345" en base de données.
Je ne comprends pas bien ton code...
String lsSQL2="select num from entre where num_facture='"+nf1.getText()+"' LIMIT "+var+",1";
Déjà il faudrait faire des PreparedStatement pour éviter l'injection SQL, d'autre part num_facture est a priori une clé donc à quoi sert le LIMIT ?
D'ailleurs si c'est un numéro pourquoi mettre des String ? Tu dois choisir de manière adaptée les types de données que tu manipules.
Quant à ton décalage, ça ressemble à une mauvaise idée, effectivement pour l'utilisateur c'est peut-être utile dans l'interface graphique, mais ça ne sert à rien de persister cette donnée en base, il faut juste faire un mapping côté Java pour que lorsque tu requêtes la valeur "2" dans ton interface graphique cela corresponde au num "12345" en base de données.
ResultSet result1 = state.executeQuery(lsSQL2);
Voici une version rigoureuse de ton décalage de numéros :
Ce qui donne :