Update

Résolu
tshindima Messages postés 18 Statut Membre -  
tshindima Messages postés 18 Statut Membre -
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);}

2 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Bonjour,

    D'une part tu mélanges
    Boolean kal
    et
    String Kal
    , ici ta condition sur codelect devrait être
    Kal
    et non
    kal
    .

    De plus pour que ça fonctionne il faudrait mettre des apostrophes autour de ta chaîne de caractères
    Kal
    dans 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();
    1
  2. tshindima Messages postés 18 Statut Membre 1
     
    Merci bcp je suis parvenu à la solution grace a votre assistance
    1