Auteur |
Message |
crapaud
Newbiiiie
Messages: 14
|
Posté le:
Mar 14 Juin 2005 - 01:46 |
|
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 |
|
|
|
|
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
Sexe:
Messages: 226
Localisation: Amiens
|
Posté le:
Mar 14 Juin 2005 - 04:19 |
|
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' |
|
|
|
|
crapaud
Newbiiiie
Messages: 14
|
Posté le:
Mar 14 Juin 2005 - 05:44 |
|
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 |
|
|
|
|
crapaud
Newbiiiie
Messages: 14
|
Posté le:
Mar 14 Juin 2005 - 05:53 |
|
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! |
|
|
|
|
queskispace
Accro à Web-IG
Sexe:
Messages: 194
Localisation: En ce moment, derrière mon pc
|
Posté le:
Mar 14 Juin 2005 - 08:43 |
|
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 |
|
|
|
crapaud
Newbiiiie
Messages: 14
|
Posté le:
Mar 14 Juin 2005 - 18:09 |
|
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 |
|
|
|
|
queskispace
Accro à Web-IG
Sexe:
Messages: 194
Localisation: En ce moment, derrière mon pc
|
Posté le:
Mar 14 Juin 2005 - 19:42 |
|
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 |
|
|
|
crapaud
Newbiiiie
Messages: 14
|
Posté le:
Mar 14 Juin 2005 - 20:33 |
|
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 ! |
|
|
|
|
queskispace
Accro à Web-IG
Sexe:
Messages: 194
Localisation: En ce moment, derrière mon pc
|
Posté le:
Mar 14 Juin 2005 - 21:52 |
|
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 |
|
|
|
crapaud
Newbiiiie
Messages: 14
|
Posté le:
Mer 15 Juin 2005 - 00:32 |
|
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 |
|
|
|
|
queskispace
Accro à Web-IG
Sexe:
Messages: 194
Localisation: En ce moment, derrière mon pc
|
Posté le:
Mer 15 Juin 2005 - 09:13 |
|
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 |
|
|
|
|