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 :

Too few parameters. Expected 3


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 43
    Par défaut Too few parameters. Expected 3
    Bonjour a tous,

    Mes amis, je veux faire une mise à jour sur ma base de donnée (code ci-dessous), mais un message s'affiche qui est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Too few parameters. Expected 3


    Sachant que si à la place de val1,val2 et val3 dans la requête, je mets des valeurs tout va bien et ça marche super bien!!!!!!!

    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
     
    public  static void insert(int val1, int val2, int val3){
            String url="jdbc:odbc:myDataBase";
            try{
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                Connection con = DriverManager.getConnection(url,"","");
                Statement st = con.createStatement();
                System.out.println(val1); // a ce niveau  un affichage de valeur avec la quel la fonction a été apelé
                System.out.println(val2);// a ce niveau  un affichage de valeur avec la quel la fonction a été apelé
                System.out.println(val3);// a ce niveau  un affichage de valeur avec la quel la fonction a été apelé
                int rs = st.executeUpdate(" UPDATE Table1 SET Canettes = val1 , Cartons =  val2, Palettes= val3 WHERE id=3 ");
              // st.close();
            //  con.close();
            }catch(Exception cnfe){
                System.out.println("Problème de BD chez admin");
                cnfe.printStackTrace();
               }
            }
        }
    Peut être que j'ai mal écrit la requête ?????
    Que pensez vous???

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Ta requête est mal écrite. Si tu veux te servir de la valeur de tes variables val1, val2 et val3, il vaut les mettre en dehors du String de ta requête de cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    " UPDATE Table1 SET Canettes = " + val1 + " , Cartons =  " + val2 + ", Palettes= " + val3 + " WHERE id=3"
    Sachant qu'il est de meilleure pratique d'utiliser les PreparedStatement pour former ces requêtes : http://java.developpez.com/faq/jdbc/...paredstatement

    Ce qui te donnerait des choses de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PreparedStatement preparedStatement = null;
     
    String updateTableSQL = "UPDATE Table1 SET Canettes = ?, Cartons =  ?, Palettes = ? WHERE id = ?";
     
    preparedStatement = connection.prepareStatement(updateTableSQL);
     
    preparedStatement.setInt(1, val1);
    preparedStatement.setInt(2, val2);
    preparedStatement.setInt(3, val3);
    preparedStatement.setInt(4, 3);
     
    preparedStatement.executeUpdate();
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2013
    Messages : 43
    Par défaut Résolu
    effectivement ça marche!!!!!!

    Merci pour l'aide

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/03/2013, 08h47
  2. [AC-2003] Erreur : Too few parameters. Expected 1
    Par robx2309 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/05/2011, 16h32
  3. Réponses: 2
    Dernier message: 01/04/2008, 10h38
  4. [VBA][recordset]pb update error 3061 too few parameters
    Par megapacman dans le forum Access
    Réponses: 2
    Dernier message: 23/03/2006, 17h11
  5. Réponses: 3
    Dernier message: 03/11/2005, 19h41

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