Update
Résolu
tshindima
Messages postés
13
Date d'inscription
Statut
Membre
Dernière intervention
-
tshindima Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
tshindima Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Svp j'ai une BDD en Access ou j'ai prevu un champ oui/non (boolean) mais je n'arrive pas à faire l'update sur ce champ à prtir de Java.
Je vous demande svp de m'aider
Voici mon code
Boolean kal = null;
connect();
try{
String Kal = codeelecteur.getText().toUpperCase();
Statement st =con.createStatement();
int nb = st.executeUpdate("UPDATE lecteur SET candidat = "+true+" WHERE codelect="+kal+"");
st.close();
con.close();
if(nb==1){
JOptionPane.showMessageDialog(null,"LA MODIFICATION A ETE FAITE AVEC SUCCES!","MISE A JOUR DES DONNEES",JOptionPane.INFORMATION_MESSAGE);}
}
catch(Exception ex) {JOptionPane.showMessageDialog(null,"Echec de modification: "+ex);}
Svp j'ai une BDD en Access ou j'ai prevu un champ oui/non (boolean) mais je n'arrive pas à faire l'update sur ce champ à prtir de Java.
Je vous demande svp de m'aider
Voici mon code
Boolean kal = null;
connect();
try{
String Kal = codeelecteur.getText().toUpperCase();
Statement st =con.createStatement();
int nb = st.executeUpdate("UPDATE lecteur SET candidat = "+true+" WHERE codelect="+kal+"");
st.close();
con.close();
if(nb==1){
JOptionPane.showMessageDialog(null,"LA MODIFICATION A ETE FAITE AVEC SUCCES!","MISE A JOUR DES DONNEES",JOptionPane.INFORMATION_MESSAGE);}
}
catch(Exception ex) {JOptionPane.showMessageDialog(null,"Echec de modification: "+ex);}
A voir également:
- Update
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Wsus offline update - Télécharger - Systèmes d'exploitation
- Nettoyage windows update - Guide
2 réponses
Bonjour,
D'une part tu mélanges
De plus pour que ça fonctionne il faudrait mettre des apostrophes autour de ta chaîne de caractères
Cependant il y a des risques de sécurité important à faire ça, car il est tout à fait possible de mettre des apostrophes dans ta chaîne de caractères, cela transformerait la requête et on pourrait faire un peu n'importe quoi.
Exemple :
Avec cette valeur de Kal, la requête devient :
Cela effacera donc totalement la table lecteur de ta base de données...
Pour éviter cela il faut utiliser des PreparedStatement en Java.
D'une part tu mélanges
Boolean kalet
String Kal, ici ta condition sur codelect devrait être
Kalet non
kal.
De plus pour que ça fonctionne il faudrait mettre des apostrophes autour de ta chaîne de caractères
Kaldans la requête SQL.
" WHERE codelect='"+Kal+"'"
Cependant il y a des risques de sécurité important à faire ça, car il est tout à fait possible de mettre des apostrophes dans ta chaîne de caractères, cela transformerait la requête et on pourrait faire un peu n'importe quoi.
Exemple :
String Kal = "'; DROP TABLE lecteur; --";
Avec cette valeur de Kal, la requête devient :
UPDATE lecteur SET candidat = true WHERE codelect=''; DROP TABLE lecteur; --'
Cela effacera donc totalement la table lecteur de ta base de données...
Pour éviter cela il faut utiliser des PreparedStatement en Java.
PreparedStatement pstmt = con.prepareStatement( "UPDATE lecteur SET candidat = ? WHERE codelect = ?"); pstmt.setBoolean(1, true); pstmt.setString(2, Kal); pstmt.executeUpdate();