Gérer le forum:  Aide  •  Rechercher  •  Liste des Membres  •  Groupes d'utilisateurs   •  S'enregistrer  •  Profil  •  Se connecter pour vérifier ses messages privés  •  Connexion 
 [debutant] erreur JDBC Voir le sujet suivant
Voir le sujet précédent
Poster un nouveau sujetRépondre au sujet
Auteur Message
crapaud
Newbiiiie
Newbiiiie




Messages: 14

MessagePosté le: Mar 14 Juin 2005 - 01:46 Répondre en citantRevenir en haut

coucou

voilà, apres avoir executer mon programe, qui est principalement basé sur une requete, une erreur s'affiche :
erreur JDBC : Column count doesn't match value count at row 1

donc si quelqu'un pourrait me dire ce que cela signifie?

merci de votre aide
Voir le profil de l'utilisateurEnvoyer un message privé

N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire.
mrmabo
Accro à Web-IG
Accro à Web-IG


Post-BTS
Sexe: Sexe:Masculin
Messages: 226
Localisation: Amiens

MessagePosté le: Mar 14 Juin 2005 - 04:19 Répondre en citantRevenir en haut

s'il s'agit d'un insert il y a un probleme dans le nombre de champs

verifie bien que tous les champs nommé sont present si tu ne precise pas après le nom de la table

insert into table values ('ch1', 'ch2'....,'chn');

ou pr etre sur :
insert into table (nomch1, nomch2, ... nomchn) values ('ch1', 'ch2'....,'chn');


enfin je pense que c'est un truc du genre
en gros
'le compte des colonnes ne corresspond pas a la valeur comptée a la ligne 1'
Voir le profil de l'utilisateurEnvoyer un message privé
crapaud
Newbiiiie
Newbiiiie




Messages: 14

MessagePosté le: Mar 14 Juin 2005 - 05:44 Répondre en citantRevenir en haut

regarde mon code, pourtant tout va bien...
Code:

package com.insert.test;

/**
 * <p>Titre : inserer des clients</p>
 *
 * <p>Description : </p>
 *
 * <p>Copyright : Copyright (c) 2005</p>
 *
 * <p>Société : </p>
 *
 * @author aurélie
 * @version 1.0
 */




import java.awt.event.*;
import java.sql.*;
import java.awt.*;
import javax.swing.JPanel;
import javax.swing.JOptionPane;
import javax.swing.*;


public class Inserer extends Frame implements ActionListener
{
    Component c;
    Container con;
    Frame f = new Frame("exercice");
    TextField num = new TextField("Numero du client", 20);
    TextField nom = new TextField("Nom du client", 20);
    TextField adresse = new TextField("Adresse", 20);
    TextField cp = new TextField("Code postal", 20);
    TextField ville = new TextField("Ville", 20);
    TextField tel = new TextField("Telephone", 20);
    TextField plan = new TextField("Nombre de plan", 20);
   
    Label message = new Label();
    Button quitter = new Button ("QUITTER L'APPLICATION");
    Button inserer = new Button ("INSERER ");
    Panel panneau = new Panel();
         
    //quitter.addActionListener (new ListenerQuitter(this));
    //c.setColor (Color yellow);
   // con.setFont(Font Courier,Font.BOLD, 50);

public Inserer() {

        num.addActionListener(this);
        nom.addActionListener(this);
        adresse.addActionListener(this);
        cp.addActionListener(this);
        ville.addActionListener(this);
        tel.addActionListener(this);
        plan.addActionListener(this);
        inserer.addActionListener(this);
       
        num.selectAll(); // pour sélectionner le texte du champ
        nom.selectAll();
        adresse.selectAll();
        cp.selectAll();
        ville.selectAll();
        tel.selectAll();
        plan.selectAll();
       
        setLayout(new FlowLayout());
        add(num);
        add(nom);
        add(adresse);
        add(cp);
        add(ville);
        add(tel);
        add(plan);
        add(quitter);
        add(inserer);
       
        setBounds(40,60,300,200);
        setTitle("INSERER UN NOUVEAU CLIENT");
        setSize(300, 350);
        setVisible(true);
   // }
        //quitter.addWindowListener (new WindowAdapter()

       // public void windowClosing(WindowEvent e)
       // {
            //System.exit(0);
       // }
        //});


    }
   
public void actionPerformed(ActionEvent e) {
                if (e.getSource().equals(inserer))
               // if (e.getSource() == num)
               // if (e.getSource() == nom)
               // if (e.getSource() == adresse)
                //if (e.getSource() == cp)
                //if (e.getSource() == ville)
                //if (e.getSource() == tel)
                //if (e.getSource() == plan)
                   
                {
                   

                    Connection con = null;
                    Statement instruction = null;
                    ResultSet resultat = null;

                    try {
                        Class.forName("com.mysql.jdbc.Driver");
                        con = DriverManager.getConnection(
                                "jdbc:mysql://localhost/techniclim",
                                "root", "");
                        instruction = con.createStatement();

                        int res = instruction.executeUpdate
                                   ("INSERT INTO client (num_client, nom, adresse, cp ,ville, telephone ,nbre_plan) VALUES ( '" + num.getText() + "'   '" + nom.getText() + "'   '" + adresse.getText() + "'   '" + cp.getText() + "'   '" + ville.getText() + "'  '" + tel.getText() + "'   '" + plan.getText() + "' )");
           
                               
                        String num = "";
                        String nom = "";
                        String adresse = "";
                        String cp = "";
                        String ville = "";
                        String tel = "";
                        String plan = "";


              while (resultat.next()) {
             num += resultat.getString("num_client") + "";
             nom += resultat.getString("nom du client") + "";
              adresse += resultat.getString("adresse") + "";
              cp += resultat.getString("cp") + "";
              ville += resultat.getString("ville") + "";
              tel += resultat.getString("telephone") + "";
              plan += resultat.getString("nbre_plan") + "";


                        }
                         JOptionPane.showMessageDialog(null,
                                                       "<html>"
                +"<center><b><i><h2>Test</h2></i></b><br>"
                +"<table border=\"2\">"
                +"<tr><td><ul><li>Test2</li></ul></td></tr>"
                +"</table>"
                +"</center>"
                +"</html>"); //"Client :"  + nom + " ajouté avec succès");
                                //"\u20ac");


                    } catch (ClassNotFoundException ex) {
                        JOptionPane.showMessageDialog(null,
                                "Classe introuvable" +
                                ex.getMessage());
                    } catch (SQLException ex) {
                        JOptionPane.showMessageDialog(null,
                                "erreur JDBC : " +
                                ex.getMessage());
                    } finally {
                        try {
                            if (resultat != null)
                                resultat.close();
                            if (con != null)
                                con.close();
                        } catch (SQLException ex) {
                            ex.printStackTrace();
                            System.exit(0);
                        }

                    }
                }
            }


            public static void main(String[] args) {
                Frame f = new Inserer();
            }
        }




merci, si tu peux m'aider
Voir le profil de l'utilisateurEnvoyer un message privé
crapaud
Newbiiiie
Newbiiiie




Messages: 14

MessagePosté le: Mar 14 Juin 2005 - 05:53 Répondre en citantRevenir en haut

je vais vous donner le coe qu'on m'a donné
je ne vois vraiment pas où est le pb :s:s mais bon

Code:

package com.insert.test;

/**
 * <p>Titre : inserer des clients</p>
 *
 * <p>Description : </p>
 *
 * <p>Copyright : Copyright (c) 2005</p>
 *
 * <p>Société : </p>
 *
 * @author aurélie
 * @version 1.0
 */




import java.awt.event.*;
import java.sql.*;
import java.awt.*;
import javax.swing.JPanel;
import javax.swing.JOptionPane;
import javax.swing.*;


public class Inserer extends Frame implements ActionListener
{
    Component c;
    Container con;
    Frame f = new Frame("exercice");
    TextField num = new TextField("Numero du client", 20);
    TextField nom = new TextField("Nom du client", 20);
    TextField adresse = new TextField("Adresse", 20);
    TextField cp = new TextField("Code postal", 20);
    TextField ville = new TextField("Ville", 20);
    TextField tel = new TextField("Telephone", 20);
    TextField plan = new TextField("Nombre de plan", 20);
   
    Label message = new Label();
    Button quitter = new Button ("QUITTER L'APPLICATION");
    Button inserer = new Button ("INSERER ");
    Panel panneau = new Panel();
         
    //quitter.addActionListener (new ListenerQuitter(this));
    //c.setColor (Color yellow);
   // con.setFont(Font Courier,Font.BOLD, 50);

public Inserer() {

        num.addActionListener(this);
        nom.addActionListener(this);
        adresse.addActionListener(this);
        cp.addActionListener(this);
        ville.addActionListener(this);
        tel.addActionListener(this);
        plan.addActionListener(this);
        inserer.addActionListener(this);
       
        num.selectAll(); // pour sélectionner le texte du champ
        nom.selectAll();
        adresse.selectAll();
        cp.selectAll();
        ville.selectAll();
        tel.selectAll();
        plan.selectAll();
       
        setLayout(new FlowLayout());
        add(num);
        add(nom);
        add(adresse);
        add(cp);
        add(ville);
        add(tel);
        add(plan);
        add(quitter);
        add(inserer);
       
        setBounds(40,60,300,200);
        setTitle("INSERER UN NOUVEAU CLIENT");
        setSize(300, 350);
        setVisible(true);
   // }
        //quitter.addWindowListener (new WindowAdapter()

       // public void windowClosing(WindowEvent e)
       // {
            //System.exit(0);
       // }
        //});


    }
   
public void actionPerformed(ActionEvent e) {
                if (e.getSource().equals(inserer))
               // if (e.getSource() == num)
               // if (e.getSource() == nom)
               // if (e.getSource() == adresse)
                //if (e.getSource() == cp)
                //if (e.getSource() == ville)
                //if (e.getSource() == tel)
                //if (e.getSource() == plan)
                   
                {
                   

                    Connection con = null;
                    Statement instruction = null;
                    ResultSet resultat = null;

                    try {
                        Class.forName("com.mysql.jdbc.Driver");
                        con = DriverManager.getConnection(
                                "jdbc:mysql://localhost/techniclim",
                                "root", "");
                        instruction = con.createStatement();

                        int res = instruction.executeUpdate
                                   ("INSERT INTO client (num_client, nom, adresse, cp ,ville, telephone ,nbre_plan) VALUES ( '" + num.getText() + "'   '" + nom.getText() + "'   '" + adresse.getText() + "'   '" + cp.getText() + "'   '" + ville.getText() + "'  '" + tel.getText() + "'   '" + plan.getText() + "' )");
           
                               
                        String num = "";
                        String nom = "";
                        String adresse = "";
                        String cp = "";
                        String ville = "";
                        String tel = "";
                        String plan = "";


              while (resultat.next()) {
             num += resultat.getString("num_client") + "";
             nom += resultat.getString("nom du client") + "";
              adresse += resultat.getString("adresse") + "";
              cp += resultat.getString("cp") + "";
              ville += resultat.getString("ville") + "";
              tel += resultat.getString("telephone") + "";
              plan += resultat.getString("nbre_plan") + "";


                        }
                         JOptionPane.showMessageDialog(null,
                                                       "<html>"
                +"<center><b><i><h2>Test</h2></i></b><br>"
                +"<table border=\"2\">"
                +"<tr><td><ul><li>Test2</li></ul></td></tr>"
                +"</table>"
                +"</center>"
                +"</html>"); //"Client :"  + nom + " ajouté avec succès");
                                //"\u20ac");


                    } catch (ClassNotFoundException ex) {
                        JOptionPane.showMessageDialog(null,
                                "Classe introuvable" +
                                ex.getMessage());
                    } catch (SQLException ex) {
                        JOptionPane.showMessageDialog(null,
                                "erreur JDBC : " +
                                ex.getMessage());
                    } finally {
                        try {
                            if (resultat != null)
                                resultat.close();
                            if (con != null)
                                con.close();
                        } catch (SQLException ex) {
                            ex.printStackTrace();
                            System.exit(0);
                        }

                    }
                }
            }


            public static void main(String[] args) {
                Frame f = new Inserer();
            }
        }





thanks pour votre aide!
Voir le profil de l'utilisateurEnvoyer un message privé
queskispace
Accro à Web-IG
Accro à Web-IG


BTS IG - Option développeur Diplômé
Sexe: Sexe:Masculin
Messages: 194
Localisation: En ce moment, derrière mon pc

MessagePosté le: Mar 14 Juin 2005 - 08:43 Répondre en citantRevenir en haut

Code:
("INSERT INTO client (num_client, nom, adresse, cp ,ville, telephone ,nbre_plan) VALUES ( '" + num.getText() + "'   '" + nom.getText() + "'   '" + adresse.getText() + "'   '" + cp.getText() + "'   '" + ville.getText() + "'  '" + tel.getText() + "'   '" + plan.getText() + "' )"


Faut pas mettre des virgules entre chaque valeur que tu insere ??

Code:
("INSERT INTO client (num_client, nom, adresse, cp ,ville, telephone ,nbre_plan) VALUES ( '" + num.getText() + "',   '" + nom.getText() + "',   '" + adresse.getText() + "',   '" + cp.getText() + "',   '" + ville.getText() + "',  '" + tel.getText() + "',   '" + plan.getText() + "' )"


Essaye et dis nous si ca marche mieux

_________________
Tout a une fin sauf le saucisson qui en a deux
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
crapaud
Newbiiiie
Newbiiiie




Messages: 14

MessagePosté le: Mar 14 Juin 2005 - 18:09 Répondre en citantRevenir en haut

j'ai rajouté les parentheses mais voici des erreurs que je ne comprends pas du tout :

Code:
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)

   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

   at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)


est c que tu sais ce que cela veut dire?

thanks
Voir le profil de l'utilisateurEnvoyer un message privé
queskispace
Accro à Web-IG
Accro à Web-IG


BTS IG - Option développeur Diplômé
Sexe: Sexe:Masculin
Messages: 194
Localisation: En ce moment, derrière mon pc

MessagePosté le: Mar 14 Juin 2005 - 19:42 Répondre en citantRevenir en haut

C'est des parenthèses que t'a rajouté ou des virgules ?? Parce que c'est des virgules qu'il faut rajouter entre chaque valeur que tu insère.

Code:
INSERT INTO nomTable (champ1, champ2) VALUES (Valeur1, Valeur2);


Et sinon pour ton erreur, tu peux mettre tout les messages que tu recoit, parce que la il manque au moins la premiere ligne. Les erreurs que t'a là c'est tres difficile de dire a quoi ca correspond, c'est juste que t'a un probleme avec un composant Awt, mais on sait meme pas lequel...

_________________
Tout a une fin sauf le saucisson qui en a deux
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
crapaud
Newbiiiie
Newbiiiie




Messages: 14

MessagePosté le: Mar 14 Juin 2005 - 20:33 Répondre en citantRevenir en haut

oui oui c'est bien des virgules que j'ai rajouté...

Code:
java.lang.NullPointerException

   at com.insert.test.Inserer.actionPerformed(Inserer.java:132)

   at java.awt.Button.processActionEvent(Button.java:382)

   at java.awt.Button.processEvent(Button.java:350)

   at java.awt.Component.dispatchEventImpl(Component.java:3615)

   at java.awt.Component.dispatchEvent(Component.java:3477)

   at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)

   at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)

   at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

   at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

   at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)


voila!!
thanks !
Voir le profil de l'utilisateurEnvoyer un message privé
queskispace
Accro à Web-IG
Accro à Web-IG


BTS IG - Option développeur Diplômé
Sexe: Sexe:Masculin
Messages: 194
Localisation: En ce moment, derrière mon pc

MessagePosté le: Mar 14 Juin 2005 - 21:52 Répondre en citantRevenir en haut

Oki, ben kan t'a un null pointeur exception en général c'est parsk t'appelle une méthode pour une classe que tu n'a pas initialisé (sa valeur est nulle)
Ca peut aussi arriver si tu passe un classe non initialisé à une méthode qui nécessite une classe valide.
Si t'affiche le code de la méthode avec la ligne ou t'a le bug jpourrais t'aider +.

_________________
Tout a une fin sauf le saucisson qui en a deux
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
crapaud
Newbiiiie
Newbiiiie




Messages: 14

MessagePosté le: Mer 15 Juin 2005 - 00:32 Répondre en citantRevenir en haut

alors par rapport à ce que tu m'a dit, je pense que l'erreur vient de là :

Code:

Connection con = null;
                    Statement instruction = null;
                    ResultSet resultat = null;


au niveau de ResultSet resultat = null ??

si oui que marqué à la place?

thanks
Voir le profil de l'utilisateurEnvoyer un message privé
queskispace
Accro à Web-IG
Accro à Web-IG


BTS IG - Option développeur Diplômé
Sexe: Sexe:Masculin
Messages: 194
Localisation: En ce moment, derrière mon pc

MessagePosté le: Mer 15 Juin 2005 - 09:13 Répondre en citantRevenir en haut

C'est normal d'initialiser tes variables à null, c'est meme assez bien souvent obligatoire de le faire, le problème c'est que tu dois ensuite appeler une des méthodes de ces objets sans avoir fait avant un truc comme :
Code:
resultat = new ResultSet()


Vérifie que pour chaque classe dont tu utilise une méthode tu l'a bien instancié avec new NomDeClasse(); ou que tu recois une instance de cette classe en retour d'une fonction. Dans ce cas tu peux vérifier que la valeur renvoyé par la fonction n'est pas nulle.

Sinon cela peut aussi venir des classes que tu recoit en argument si jamais tu en recoit. Au debut de ton programme tu peux tester la validité de tes argument :
Code:

if (arg == null) {
   return;
}


Sinon pour savoir sur kel ligne est arrivé l'erreur si tu utilise un IDE, en double clikant sur le premier message d'erreur (La ou y'a Null pointeur Exception) il devrais t'amener directement a la ligne ou elle c'est produite.

_________________
Tout a une fin sauf le saucisson qui en a deux
Voir le profil de l'utilisateurEnvoyer un message privéMSN Messenger
Montrer les messages depuis:      
Poster un nouveau sujetRépondre au sujet
 Sauter vers:   



Voir le sujet suivant
Voir le sujet précédent
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum