Ajouter un enregistrement [Résolu]

massbbc 115 Messages postés jeudi 26 mai 2005Date d'inscription 8 septembre 2015 Dernière intervention - 5 janv. 2009 à 16:28 - Dernière réponse : massbbc 115 Messages postés jeudi 26 mai 2005Date d'inscription 8 septembre 2015 Dernière intervention
- 13 janv. 2009 à 12:03
Salut ! je suis débutant en javant et jaimerais pouvoir ajouter des enregistrement dans mabase de donnée.

Mon problème c'est que lorsque j'exécute mon code jai des érreurs
Erreurs:
Exception

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

    at devlog.AjoutP.ajouterClient(AjoutP.java:129)

    at devlog.AjoutP.actionPerformed(AjoutP.java:89)

    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)

    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)

    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)

    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)

    at java.awt.Component.processMouseEvent(Unknown Source)

    at javax.swing.JComponent.processMouseEvent(Unknown Source)

Merci de m'apporter votre aide

Voici mon code en dessous:


package log;


import java.awt.*;

import javax.swing.*;

import javax.swing.JComboBox;

import java.awt.event.*;

import java.sql.*;

import java.io.*;

public class AjoutP extends JFrame implements ActionListener {

JTextField txtrefP,txtNProd,txtqt,txtNomFour,txtcat,txtadr,txtTel,txtmont,txtmoy;

JButton btnAjout,btnEffacer,btnFermer;

public static void main(String[]args)

{

AjoutP frame=new AjoutP();


}

public AjoutP()

{

Container c=this.getContentPane();

c.setLayout(new GridLayout(3,5));

JPanel panelcentre=new JPanel(new GridLayout(9,2));

JPanel panelbas=new JPanel(new FlowLayout());

JLabel titre=new JLabel("",SwingConstants.RIGHT);

titre.setForeground(Color.red);

titre.setFont(new Font("TimesRoman",Font.ITALIC,25));

titre.setText("FIRST APPLICATION JAVA CORP.");

c.add(titre);

//zone de saisie pour le nom l'adresse et le telephone

txtrefP=new JTextField();

txtNProd=new JTextField();

txtqt=new JTextField();

txtNomFour=new JTextField();

txtcat=new JTextField();

txtadr=new JTextField();

txtTel=new JTextField();

txtmont=new JTextField();

Object[] pai= {"Chèque bancaire", "Espèce","Carte bleu", "Chèques"};

JComboBox txtmoy = new JComboBox(pai);

//ajout des etiquettes et des zones de saisie au panel

panelcentre.add(new JLabel("REFERENCE PRODUIT :",SwingConstants.RIGHT));

panelcentre.add(txtrefP);

panelcentre.add(new JLabel("NOM PRODUIT :",SwingConstants.RIGHT));

panelcentre.add(txtNProd);

panelcentre.add(new JLabel("QUANTIE :",SwingConstants.RIGHT));

panelcentre.add(txtqt);

panelcentre.add(new JLabel("CATEGORIE :",SwingConstants.RIGHT));

panelcentre.add(txtcat);

panelcentre.add(new JLabel("NOM FOURNISSEUR :",SwingConstants.RIGHT));

panelcentre.add(txtNomFour);

panelcentre.add(new JLabel("ADRESSE :",SwingConstants.RIGHT));

panelcentre.add(txtadr);

panelcentre.add(new JLabel("TELEPHONE :",SwingConstants.RIGHT));

panelcentre.add(txtTel);

panelcentre.add(new JLabel("MONTANT :",SwingConstants.RIGHT));

panelcentre.add(txtmont);

panelcentre.add(new JLabel("MOYEN :",SwingConstants.RIGHT));

panelcentre.add(txtmoy);

c.add(panelcentre);

//creer et ajoutter des boutons au panel de bas

btnAjout=new JButton("Ajouter");

btnEffacer=new JButton("Effacer");

btnFermer=new JButton("Fermer");

panelbas.add(btnAjout);

panelbas.add(btnEffacer);

panelbas.add(btnFermer);

c.add(panelbas);

//enregistrer le frame comme auditeur de bouton

btnAjout.addActionListener(this);

btnEffacer.addActionListener(this);

btnFermer.addActionListener(this);

this.setSize(550,600);

this.setTitle("AJOUT DE PRODUIT");

this.setVisible(true);

//creer une classe anonyme pour gerer la fermeture de la fenetre

this.addWindowListener(new WindowAdapter()

{

public void windoClosing(WindowEvent ev)

{

fermerFormulaire();

}

}

);

}//fin du constructeur

public void actionPerformed(ActionEvent e)

{

//déterminer si on cliqué sur un bouton

if(e.getSource()==btnAjout)

{

ajouterClient();


}

if(e.getSource()==btnEffacer)

{effacerFormulaire();}

if(e.getSource()==btnFermer)

{fermerFormulaire();}

}

//ajout

private void ajouterClient()

{

String url = "com.mysql.jdbc.Driver";

Connection con = null;

try {

String refProd,NomProd,Quant,categorie,NomFour,adressLivr,Tel,montCommande,moyPaiement;

refProd=txtrefP.getText();

NomProd=txtNProd.getText();

Quant=txtqt.getText();

NomFour=txtNomFour.getText();

categorie=txtcat.getText();

NomFour=txtNomFour.getText();

adressLivr=txtadr.getText();

Tel=txtTel.getText();

montCommande=txtmont.getText();

moyPaiement=txtmoy.getSelectedText();


System.out.println(refProd+" "+NomProd+" "+Quant+""+categorie+""+NomFour+" "+adressLivr+""+Tel+""+montCommande+""+moyPaiement);

Class.forName(url);


con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/gestion","root","");


//insertion

Statement s = con.createStatement();

String str = "INSERT INTO produi (refProd, NomProd ,Quant ,categorie
,NomFour, adressLivr, Tel,montCommande,moyPaiement) VALUES
('"+txtrefP.getText()+"','"+txtNProd.getText()+"','"+txtqt.getText()+"','"+txtcat.getText()+"','"+txtNomFour.getText()+"','"+txtadr.getText()+"','"+txtTel.getText()+"','"+txtmont.getText()+"','"+txtmoy.getSelectedText()+"')"
;

s.executeUpdate(str);

System.out.println(str+" ligne insérée");

JOptionPane.showMessageDialog(this,"ajouté");

con.close() ;

}catch(Exception e) {System.out.println("Exception");}

finally {

try {con.close();}

catch(SQLException e) {e.printStackTrace();}

}

effacerFormulaire();

}

//effacer

private void effacerFormulaire()

{


txtrefP.setText("");

txtNProd.setText("");

txtqt.setText("");

txtNomFour.setText("");

txtcat.setText("");

txtNomFour.setText("");

txtadr.setText("");

txtTel.setText("");

txtmont.setText("");


}


//fermer

public void fermerFormulaire()

{

this.setVisible(false);

System.exit(0);

}

}
Afficher la suite 

Votre réponse

19 réponses

Meilleure réponse
dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention - 6 janv. 2009 à 10:26
3
Merci
Salut,

ben écoutes, suis le message d'erreur... Vas à la ligne 129 indiquée et regarde quelle variable est à NULL et essaie de résoudre à partir de là... non?

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...

Merci dvoraky 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de dvoraky
Meilleure réponse
dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention - 9 janv. 2009 à 19:17
3
Merci
Alors bon... Regarde le message d'erreur... Ca t'a pas aidé?

Column count doesn't match value count

Ca veut donc dire que tu essais de faire un Insert avec le mauvais nombre d'arguments!
Genre, une table avec 2 arguments, tu essais d'essayer d'insérer 3 arguments...

Revois ta requête.

Merci dvoraky 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de dvoraky
massbbc 115 Messages postés jeudi 26 mai 2005Date d'inscription 8 septembre 2015 Dernière intervention - 6 janv. 2009 à 13:01
0
Merci
Merci pour ton conseil.
Je narrive pas à récupérer les valeurs de mon combo box pour inseré dans ma base de donnée.
Commen faire
Commenter la réponse de massbbc
dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention - 6 janv. 2009 à 14:05
0
Merci
Ben dejà ton JComboBox tu ne l'as déclaré que dans ton constructeur.... donc dans les autres méthodes tu n'y auras pas accès.


Tu dois déclarer ton JComboBox comme tes JTextField tout simplement.


Et ensuite, pour récupérer la valeur qui est sélectionné, je te laisse aller chercher dans la javadoc :



http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JComboBox.html



Il existe une méthode qui te permettra de récupérer ce que tu veux.





<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
Commenter la réponse de dvoraky
massbbc 115 Messages postés jeudi 26 mai 2005Date d'inscription 8 septembre 2015 Dernière intervention - 6 janv. 2009 à 16:35
0
Merci
Merci bocou pour ton aide.
Jai fait come tu me le demandé mais kan je click sur mon bouton ! les valeurs saisie sont affiché dans ma console mais ne figure pas dans ma base de donnée.
Voici un exemple:
referen1 produit1 gt1categorie1fournisseur1 adresse11111111115410000 Chèque bancaire
Exception

Voici mon code :
package log;

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import java.io.*;
public class AjoutP extends JFrame implements ActionListener {
JTextField txtrefP,txtNProd,txtqt,txtNomFour,txtcat,txtadr,txtTel,txtmont;
Object[] pai= {"Chèque bancaire", "Espèce","Carte bleu", "Chèques"};
JComboBox txtmoy = new JComboBox(pai);
JButton btnAjout,btnEffacer,btnFermer;
public static void main(String[]args)
{
AjoutP frame=new AjoutP();

}
public AjoutP()
{
Container c=this.getContentPane();
c.setLayout(new GridLayout(3,5));
JPanel panelcentre=new JPanel(new GridLayout(9,2));
JPanel panelbas=new JPanel(new FlowLayout());
JLabel titre=new JLabel("",SwingConstants.RIGHT);
titre.setForeground(Color.red);
titre.setFont(new Font("TimesRoman",Font.ITALIC,25));
titre.setText("FIRST APPLICATION JAVA CORP.");
c.add(titre);
//zone de saisie pour le nom l'adresse et le telephone
txtrefP=new JTextField();
txtNProd=new JTextField();
txtqt=new JTextField();
txtNomFour=new JTextField();
txtcat=new JTextField();
txtadr=new JTextField();
txtTel=new JTextField();
txtmont=new JTextField();
//Object[] pai= {"Chèque bancaire", "Espèce","Carte bleu", "Chèques"};
//JComboBox txtmoy = new JComboBox(pai);
//ajout des etiquettes et des zones de saisie au panel
panelcentre.add(new JLabel("REFERENCE PRODUIT :",SwingConstants.RIGHT));
panelcentre.add(txtrefP);
panelcentre.add(new JLabel("NOM PRODUIT :",SwingConstants.RIGHT));
panelcentre.add(txtNProd);
panelcentre.add(new JLabel("QUANTITE :",SwingConstants.RIGHT));
panelcentre.add(txtqt);
panelcentre.add(new JLabel("CATEGORIE :",SwingConstants.RIGHT));
panelcentre.add(txtcat);
panelcentre.add(new JLabel("NOM FOURNISSEUR :",SwingConstants.RIGHT));
panelcentre.add(txtNomFour);
panelcentre.add(new JLabel("ADRESSE :",SwingConstants.RIGHT));
panelcentre.add(txtadr);
panelcentre.add(new JLabel("TELEPHONE :",SwingConstants.RIGHT));
panelcentre.add(txtTel);
panelcentre.add(new JLabel("MONTANT :",SwingConstants.RIGHT));
panelcentre.add(txtmont);
panelcentre.add(new JLabel("MOYEN :",SwingConstants.RIGHT));
panelcentre.add(txtmoy);
c.add(panelcentre);

//creer et ajoutter des boutons au panel de bas
btnAjout=new JButton("Ajouter");
btnEffacer=new JButton("Effacer");
btnFermer=new JButton("Fermer");
panelbas.add(btnAjout);
panelbas.add(btnEffacer);
panelbas.add(btnFermer);
c.add(panelbas);

//enregistrer le frame comme auditeur de bouton
btnAjout.addActionListener(this);
btnEffacer.addActionListener(this);
btnFermer.addActionListener(this);
this.setSize(550,600);
this.setTitle("AJOUT DE PRODUIT");
this.setVisible(true);
//creer une classe anonyme pour gerer la fermeture de la fenetre
this.addWindowListener(new WindowAdapter()
{
public void windoClosing(WindowEvent ev)
{
fermerFormulaire();
}
}
);
}//fin du constructeur
public void actionPerformed(ActionEvent e)
{
//déterminer si on cliqué sur un bouton
if(e.getSource()==btnAjout)
{
ajouterClient();

}
if(e.getSource()==btnEffacer)
{effacerFormulaire();}
if(e.getSource()==btnFermer)
{fermerFormulaire();}
}
//ajout
private void ajouterClient()
{
String url = "com.mysql.jdbc.Driver";
Connection con = null;
try {
String refProd,NomProd,Quant,categorie,NomFour,adressLivr,Tel,montCommande;
Object moyPaiement;

refProd=txtrefP.getText();
NomProd=txtNProd.getText();
Quant=txtqt.getText();
NomFour=txtNomFour.getText();
categorie=txtcat.getText();
NomFour=txtNomFour.getText();
adressLivr=txtadr.getText();
Tel=txtTel.getText();
montCommande=txtmont.getText();
moyPaiement=txtmoy.getSelectedItem();

System.out.println(refProd+" "+NomProd+" "+Quant+""+categorie+""+NomFour+" "+adressLivr+""+Tel+""+montCommande+" "+moyPaiement);
Class.forName(url);
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/gestion","root","");

//insertion
Statement s = con.createStatement();
String str = "INSERT INTO produi (refProd, NomProd ,Quant ,categorie ,NomFour, adressLivr, Tel,montCommande) VALUES ('"+txtrefP.getText()+"','"+txtNProd.getText()+"','"+txtqt.getText()+"','"+txtcat.getText()+"','"+txtNomFour.getText()+"','"+txtadr.getText()+"','"+txtTel.getText()+"','"+txtmont.getText()+"','"+txtmoy.getSelectedItem()+"')";
s.executeUpdate(str);
System.out.println(str+" ligne insérée");
JOptionPane.showMessageDialog(this,"ajouté");
con.close() ;
}catch(Exception e) {System.out.println("Exception");}
finally {
try {con.close();}
catch(SQLException e) {e.printStackTrace();}
}
effacerFormulaire();
}
//effacer
private void effacerFormulaire()
{

txtrefP.setText("");
txtNProd.setText("");
txtqt.setText("");
txtNomFour.setText("");
txtcat.setText("");
txtNomFour.setText("");
txtadr.setText("");
txtTel.setText("");
txtmont.setText("");

}

//fermer
public void fermerFormulaire()
{
this.dispose();
}
}
Commenter la réponse de massbbc
dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention - 6 janv. 2009 à 17:22
0
Merci
Bon tu comprendras que je n'ai pas lu ce bloc de mots....
Si les valeurs que tu saisis ne vont pas dans la base de données, c'est que tu as sois une erreur de connexion à la BDD ou de ta requête. Tu as un message d'erreur?

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
Commenter la réponse de dvoraky
massbbc 115 Messages postés jeudi 26 mai 2005Date d'inscription 8 septembre 2015 Dernière intervention - 6 janv. 2009 à 18:20
0
Merci
Voici les vbaleurs que jai saisie:
Voici un exemple: reference: referen1 Produit: produit1 Categorie: gt1categorie1fournisseur1 Adresse: adresse Tel:1111111111 Montant: 5410000 Moyen: Chèque bancaire

ERREUR OBTENUE:
Exception
Et je ne retrouve pas ses données dans ma base de données
Commenter la réponse de massbbc
dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention - 7 janv. 2009 à 09:03
0
Merci
... Je refais un fois voir si ça va mieux.
As tu un message d'erreur dans ton programme?

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
Commenter la réponse de dvoraky
massbbc 115 Messages postés jeudi 26 mai 2005Date d'inscription 8 septembre 2015 Dernière intervention - 7 janv. 2009 à 16:11
0
Merci
non je nai aucune erreur et c'est ce qui me parrait bizarre...
Commenter la réponse de massbbc
dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention - 7 janv. 2009 à 16:37
0
Merci
Affiche ta variable str dans laquelle il y a toute la requete "INSERT INTO................."


Et vérifie bien que cette requete soit bien formée, et à la limite, copies colles cette requette dans mysql query pour voir si ça passe.





<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
Commenter la réponse de dvoraky
massbbc 115 Messages postés jeudi 26 mai 2005Date d'inscription 8 septembre 2015 Dernière intervention - 8 janv. 2009 à 12:08
0
Merci
Ma requête passe sans problème.
Commenter la réponse de massbbc
dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention - 8 janv. 2009 à 14:56
0
Merci
Et tu reçois ton JOptionPane avec marqué "ajouté" ???

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
Commenter la réponse de dvoraky
massbbc 115 Messages postés jeudi 26 mai 2005Date d'inscription 8 septembre 2015 Dernière intervention - 8 janv. 2009 à 15:52
0
Merci
Lorque j'utilise ma requête sans "JOptionPane" avec mysql, ma requête affiche bien "ajouté"!
Mais avec JOptionPane il met "exception" au lieu de "Ajouté"
Merci
Commenter la réponse de massbbc
dvoraky 744 Messages postés dimanche 1 avril 2007Date d'inscription 9 mai 2010 Dernière intervention - 8 janv. 2009 à 16:20
0
Merci
Bon...
tu seras d'accord avec moi, d'afficher "Exception", c'est un peu inutile....

Remplaces ton System.out.println("exception"); par
e.printStackTrace()

Et mets nous ce que ça te met comme erreur

<hr width="100%" size="2" />
 C'est après des heures de codage que j'ai compris pourquoi les créateurs de Java ont choisi une tasse de café comme logo...
Commenter la réponse de dvoraky
massbbc 115 Messages postés jeudi 26 mai 2005Date d'inscription 8 septembre 2015 Dernière intervention - 9 janv. 2009 à 19:02
0
Merci
Voici les erreurs:
java.sql.SQLException: Column count doesn't match value count at row 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3277)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1402)
at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1317)
at devlog.AjoutP.ajouterClient(AjoutP.java:128)
at devlog.AjoutP.actionPerformed(AjoutP.java:92)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
Commenter la réponse de massbbc
massbbc 115 Messages postés jeudi 26 mai 2005Date d'inscription 8 septembre 2015 Dernière intervention - 12 janv. 2009 à 19:07
0
Merci
OK je teste et je tenvoie le resultat demain !
Commenter la réponse de massbbc
massbbc 115 Messages postés jeudi 26 mai 2005Date d'inscription 8 septembre 2015 Dernière intervention - 13 janv. 2009 à 10:31
0
Merci
Ouf enfin jai reussi exactement ce que tu disais javais oublié de mentionné un champ dans ma rekête jai declaré 8 cham au lieu de 9 (champ oublié: moyPaiement).


Voici mon code il marche nuckel:


package devlog;

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import java.io.*;
public class AjoutP extends JFrame implements ActionListener {
JTextField txtrefP,txtNProd,txtqt,txtNomFour,txtcat,txtadr,txtTel,txtmont;
Object[] pai= {"Chèque bancaire", "Espèce","Carte bleu", "Chèques"};
JComboBox txtmoy = new JComboBox(pai);
JButton btnAjout,btnEffacer,btnFermer;
public static void main(String[]args)
{
AjoutP frame=new AjoutP();

}
public AjoutP()
{
Container c=this.getContentPane();
c.setLayout(new GridLayout(3,5));
JPanel panelcentre=new JPanel(new GridLayout(9,2));
JPanel panelbas=new JPanel(new FlowLayout());
JLabel titre=new JLabel("",SwingConstants.RIGHT);
titre.setForeground(Color.red);
titre.setFont(new Font("TimesRoman",Font.ITALIC,25));
titre.setText("FIRST APPLICATION JAVA CORP.");
c.add(titre);
//zone de saisie pour le nom l'adresse et le telephone
txtrefP=new JTextField();
txtNProd=new JTextField();
txtqt=new JTextField();
txtNomFour=new JTextField();
txtcat=new JTextField();
txtadr=new JTextField();
txtTel=new JTextField();
txtmont=new JTextField();
//Object[] pai= {"Chèque bancaire", "Espèce","Carte bleu", "Chèques"};
//JComboBox txtmoy = new JComboBox(pai);
//ajout des etiquettes et des zones de saisie au panel
panelcentre.add(new JLabel("REFERENCE PRODUIT :",SwingConstants.RIGHT));
panelcentre.add(txtrefP);
panelcentre.add(new JLabel("NOM PRODUIT :",SwingConstants.RIGHT));
panelcentre.add(txtNProd);
panelcentre.add(new JLabel("QUANTITE :",SwingConstants.RIGHT));
panelcentre.add(txtqt);
panelcentre.add(new JLabel("CATEGORIE :",SwingConstants.RIGHT));
panelcentre.add(txtcat);
panelcentre.add(new JLabel("NOM FOURNISSEUR :",SwingConstants.RIGHT));
panelcentre.add(txtNomFour);
panelcentre.add(new JLabel("ADRESSE :",SwingConstants.RIGHT));
panelcentre.add(txtadr);
panelcentre.add(new JLabel("TELEPHONE :",SwingConstants.RIGHT));
panelcentre.add(txtTel);
panelcentre.add(new JLabel("MONTANT :",SwingConstants.RIGHT));
panelcentre.add(txtmont);
panelcentre.add(new JLabel("MOYEN :",SwingConstants.RIGHT));
panelcentre.add(txtmoy);
c.add(panelcentre);

//creer et ajoutter des boutons au panel de bas
btnAjout=new JButton("Ajouter");
btnEffacer=new JButton("Effacer");
btnFermer=new JButton("Fermer");
panelbas.add(btnAjout);
panelbas.add(btnEffacer);
panelbas.add(btnFermer);
c.add(panelbas);

//enregistrer le frame comme auditeur de bouton
btnAjout.addActionListener(this);
btnEffacer.addActionListener(this);
btnFermer.addActionListener(this);
this.setSize(550,600);
this.setTitle("AJOUT DE PRODUIT");
this.setVisible(true);
//creer une classe anonyme pour gerer la fermeture de la fenetre
this.addWindowListener(new WindowAdapter()
{
public void windoClosing(WindowEvent ev)
{
fermerFormulaire();
}
}
);
}//fin du constructeur
public void actionPerformed(ActionEvent e)
{
//déterminer si on cliqué sur un bouton
if(e.getSource()==btnAjout)
{
ajouterClient();

}
if(e.getSource()==btnEffacer)
{effacerFormulaire();}
if(e.getSource()==btnFermer)
{fermerFormulaire();}
}
//ajout
private void ajouterClient()
{
String url = "com.mysql.jdbc.Driver";
Connection con = null;
try {
String refProd,NomProd,Quant,categorie,NomFour,adressLivr,Tel,montCommande;

refProd=txtrefP.getText();
NomProd=txtNProd.getText();
Quant=txtqt.getText();
NomFour=txtNomFour.getText();
categorie=txtcat.getText();
NomFour=txtNomFour.getText();
adressLivr=txtadr.getText();
Tel=txtTel.getText();
montCommande=txtmont.getText();
Object moyPaiement;
JComboBox txtmoy = new JComboBox(pai);
moyPaiement=txtmoy.getSelectedItem();

System.out.println(refProd+" "+NomProd+" "+Quant+""+categorie+""+NomFour+" "+adressLivr+""+Tel+""+montCommande+" "+moyPaiement);
Class.forName(url);
con = DriverManager.getConnection("jdbc:mysql://127.0.0.1/gestion","root","");

//insertion
Statement s = con.createStatement();
String str = "INSERT INTO produi (refProd, NomProd ,Quant ,categorie ,NomFour, adressLivr, Tel,montCommande,moyPaiement) VALUES ('"+txtrefP.getText()+"','"+txtNProd.getText()+"','"+txtqt.getText()+"','"+txtcat.getText()+"','"+txtNomFour.getText()+"','"+txtadr.getText()+"','"+txtTel.getText()+"','"+txtmont.getText()+"','"+txtmoy.getSelectedItem()+"')";
s.executeUpdate(str);
System.out.println(str+" ligne insérée");
JOptionPane.showMessageDialog(this,"ajouté");
con.close() ;
}catch(Exception e) {System.out.println("Exception");}
finally {
try {con.close();}
catch(SQLException e) {e.printStackTrace();}
}
effacerFormulaire();
}
//effacer
private void effacerFormulaire()
{

txtrefP.setText("");
txtNProd.setText("");
txtqt.setText("");
txtNomFour.setText("");
txtcat.setText("");
txtNomFour.setText("");
txtadr.setText("");
txtTel.setText("");
txtmont.setText("");

}

//fermer
public void fermerFormulaire()
{
this.dispose();
}
}
Commenter la réponse de massbbc
massbbc 115 Messages postés jeudi 26 mai 2005Date d'inscription 8 septembre 2015 Dernière intervention - 13 janv. 2009 à 10:36
0
Merci
Ouf enfin jai reussi exactement ce que tu disais javais oublié de mentionné un champ dans ma rekête jai declaré 8 cham au lieu de 9 (champ oublié: moyPaiement).
Commenter la réponse de massbbc
massbbc 115 Messages postés jeudi 26 mai 2005Date d'inscription 8 septembre 2015 Dernière intervention - 13 janv. 2009 à 12:03
0
Merci
Merci pour tout !
Jai une seconde question comment faire une requête sur deux tables ?
Commenter la réponse de massbbc

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.