IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Suppression qui ne fonctionne pas


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 53
    Points : 53
    Points
    53
    Par défaut Suppression qui ne fonctionne pas
    à chaque fois que j'execute mon application la suppression ne marche pas mais la verification marche très bien mais si le compte existe il supprime pas il m'envoi pas non plus le message solde > 2000

    voila le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
      boolean compteexiste=false;
            // verification du compte si le compte existe ou pas
     
            String Num = jTNm.getText();
            String myquery ="SELECT solde FROM comptes WHERE NumCompte = ?";
    try (PreparedStatement ps = conn.prepareStatement(myquery)) {
       ps.setString(1, Num);
       ResultSet rs = ps.executeQuery();
       compteexiste = rs.next();
    } catch (SQLException ex)  {
      ex.printStackTrace();
    }
    // ici executer la requete et voir si elle retourne quelque chose
    if (compteexiste){
     
            String requ ="DELETE FROM comptes WHERE NumCompte = ?  AND solde <= 2000" ;
            try (PreparedStatement ps = conn.prepareStatement(requ))
            {
                ps.setString(1, Num);
                JOptionPane.showMessageDialog(null, "supression de compte reussie ");
                int ligneVerifier = ps.executeUpdate(requ);
                if(ligneVerifier==0)
                {
                    JOptionPane.showMessageDialog(null, "désolé votre compte n'est pas vide");
     
                }
                else
                {
                    JOptionPane.showMessageDialog(null, "compte supprimer avec succès");
                }
     
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }                                        
    else{
        JOptionPane.showMessageDialog(null," ce compte n'existe pas");
    }}
    s'il vous plait j'aimerais comprendre le problème et quel est la solution






    et voila le message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?  AND solde <= 2000' at line 1
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut.

    Tu obtiens cette erreur parce que tu exécutes la requête requ directement, et non pas celle compilée dans le prepared statement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps.executeUpdate(requ);
    Cette méthode avec argument est celle de Statement, destinée à exécuter la requête passée en argument, directement. Du coup, MySql ne comprend pas le point d'interrogation dans la requête.

    Pour exécuter la requête du PreparedStatement, il faut utiliser la méthode sans argument :


  3. #3
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2015
    Messages : 53
    Points : 53
    Points
    53
    Par défaut bonjour
    merci j'ai bien compris et le code marche maintenant comme je veux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. une requête de suppression qui ne fonctionne pas (trop longue)
    Par clavier12AZQSWX dans le forum Requêtes
    Réponses: 9
    Dernier message: 25/07/2011, 16h03
  2. Suppression d'index qui ne fonctionne pas
    Par FamiDoo dans le forum Développement
    Réponses: 1
    Dernier message: 27/05/2008, 08h58
  3. Jointure externe qui ne fonctionne pas
    Par Guizz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/02/2004, 12h26
  4. CREATEFILEMAPPING qui ne fonctionne pas???
    Par Jasmine dans le forum MFC
    Réponses: 2
    Dernier message: 06/01/2004, 19h33
  5. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo