Enregistrement dans la base de donnee
alibabapro
Messages postés
28
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour, je developpe une application mais quand j'essaye d'isert dans la base de donne,on me signale l'erreur suivant: "Infos ajouternull".
Voici mon code
Et mes fonction:
Merci pour votre aide!!!
Voici mon code
try{
if(txtid.getText().equals("") || cmbno.getSelectedItem().equals("") || cmbpr.getSelectedItem().equals("")
|| cmbte.getSelectedItem().equals("") || cmbtd.getSelectedItem().equals("") || cmbref.getSelectedItem().equals("")
|| dedit.getDateFormatString().equals("") || txtmo.getText().equals("") || cmbty.getSelectedItem().equals("")
|| cmbfr.getSelectedItem().equals("")){
JOptionPane.showMessageDialog(null, "SVP entre les infos complete");
} else {
String[] colon = {"id", "nom", "prenom","expediteur","destinateur", "reference", "date", "montant", "type","frais"};
String[] inf ={txtid.getText(),cmbno.getSelectedItem().toString(),cmbpr.getSelectedItem().toString(),
cmbte.getSelectedItem().toString(),cmbtd.getSelectedItem().toString(),cmbref.getSelectedItem().toString(),
dedit.getDateFormatString(),txtmo.getText(),cmbty.getSelectedItem().toString(),cmbfr.getSelectedItem().toString()};
System.out.println(con.queryInsert("airtel", colon, inf));
table();
actualiser();
}
} catch (Exception e){JOptionPane.showMessageDialog(null, "Infos ajouter"+e.getMessage());}
Et mes fonction:
public String queryInsert(String nomTable, String[] contenuTableau){
seconnecter();
int i;
SQL = " INSERT INTO " + nomTable + " VALUES(";
for(i = 0; i <=contenuTableau.length - 1; i++){
SQL += "'" + contenuTableau[i] + "'";
if(i <contenuTableau.length - 1){
SQL +=",";
}
}
SQL +=")";
return this.executionUpdate(SQL);
}
public String queryInsert(String nomTable,String[] nomColone, String[] contenuTableau){
seconnecter();
int i;
SQL= " INSERT INTO " + nomTable + "(";
for(i = 0; i <=nomColone.length - 1; i++){
SQL+=nomColone[i];
if(i<nomColone.length-1){
SQL+=",";
}
}
SQL+=") VALUES(";
for(i = 0; i <=contenuTableau.length - 1; i++){
SQL+="'" +contenuTableau[i] + "' ";
if(i<contenuTableau.length-1){
SQL += ",";
}
}
SQL+=")";
return this.executionUpdate(SQL);
}
Merci pour votre aide!!!
1 réponse
-
Bonjour,
Il faudrait que tu ajoutes plus d'infos sur tes exceptions quand tu les récupères, sinon tu ne peux pas savoir ce qui s'est exactement passé.
catch (Exception e) { e.printStackTrace(); JOptionPane.showMessageDialog(null, // ou la JFrame courante "Erreur: "+e, e.getClass().getName(), JOptionPane.ERROR_MESSAGE); }-
-
-
Bonjour,j'ai regarde mais je n'ai pas trop compris pouvez-vous m'expliquer d'avantage! Merci
Voici mon code:try{
if(txtid.getText().equals("") || cmbno.getSelectedItem().equals("") || cmbpr.getSelectedItem().equals("")
|| cmbte.getSelectedItem().equals("") || cmbtd.getSelectedItem().equals("") || cmbref.getSelectedItem().equals("")
|| dedit.getDateFormatString().equals("") || txtmo.getText().equals("") || cmbty.getSelectedItem().equals("")
|| cmbfr.getSelectedItem().equals("")){
JOptionPane.showMessageDialog(this, "SVP entre les infos complete");
} else {
String[] colon = {"id", "nom", "prenom","expediteur","destinateur", "reference", "date", "montant", "type","frais"};
String[] inf ={txtid.getText(),cmbno.getSelectedItem().toString(),cmbpr.getSelectedItem().toString(),
cmbte.getSelectedItem().toString(),cmbtd.getSelectedItem().toString(),cmbref.getSelectedItem().toString(),
dedit.getDateFormatString(),txtmo.getText(),cmbty.getSelectedItem().toString(),cmbfr.getSelectedItem().toString()};
System.out.println(con.queryInsert("airtel", colon, inf));
// table();
actualiser();
}
} catch (Exception e){e.printStackTrace();
JOptionPane.showMessageDialog(this,"Erreur: "+e,e.getClass().getName(), JOptionPane.ERROR_MESSAGE);} -
Si ton JOptionPane.showMessageDialog affiche un NullPointerException, alors sur la ligne d'avant, le e.printStackTrace() a affiché un message d'erreur sur la console.
Ce message contient toutes les données utiles pour résoudre ton problème, il faut que tu le récupères, cela te donnera la ligne exacte de l'erreur.
Exemple :
java.lang.NullPointerException at monpackage.MaClasse.mamethode(MonFichier.java:123)
Au cas où tu n'ai pas de console (mais dans ce cas je ne vois pas l'intérêt que tu as à faire des System.out.println dans ton code) on peut marquer le détail de l'erreur dans la popup, mais ce sera à enlever après débogage car ce n'est pas une info utile pour l'utilisateur.
e.printStackTrace(); JOptionPane.showMessageDialog(this, java.util.Arrays.toString(e.getStackTrace()), e.getClass().getName(), JOptionPane.ERROR_MESSAGE);
Remarque : pour que l'indication sur la ligne de l'erreur soit le plus utile possible, je t'invite à ne pas mettre trop de code sur la même ligne, mais de séparer les instructions autant que possible (ce sera plus lisible aussi).
try { if (txtid.getText().isEmpty()) JOptionPane.showMessageDialog(this, "SVP entre les infos: id"); else if (((String) cmbno.getSelectedItem()).isEmpty()) JOptionPane.showMessageDialog(this, "SVP entre les infos: nom"); else if (((String) cmbpr.getSelectedItem()).isEmpty()) JOptionPane.showMessageDialog(this, "SVP entre les infos: prenom"); else if (((String) cmbte.getSelectedItem()).isEmpty()) JOptionPane.showMessageDialog(this, "SVP entre les infos: expediteur"); else if (((String) cmbtd.getSelectedItem()).isEmpty()) JOptionPane.showMessageDialog(this, "SVP entre les infos: destinateur"); else if (((String) cmbref.getSelectedItem()).isEmpty()) JOptionPane.showMessageDialog(this, "SVP entre les infos: reference"); else if (dedit.getDateFormatString().isEmpty()) JOptionPane.showMessageDialog(this, "SVP entre les infos: date"); else if (txtmo.getText().isEmpty()) JOptionPane.showMessageDialog(this, "SVP entre les infos: montant"); else if (((String) cmbty.getSelectedItem()).isEmpty()) JOptionPane.showMessageDialog(this, "SVP entre les infos: type"); else if (((String) cmbfr.getSelectedItem()).isEmpty()) JOptionPane.showMessageDialog(this, "SVP entre les infos: frais"); else { String[] colon = { "id", "nom", "prenom", "expediteur", "destinateur", "reference", "date", "montant", "type", "frais" }; String[] inf = { txtid.getText(), (String) cmbno.getSelectedItem(), (String) cmbpr.getSelectedItem(), (String) cmbte.getSelectedItem(), (String) cmbtd.getSelectedItem(), (String) cmbref.getSelectedItem(), dedit.getDateFormatString(), txtmo.getText(), (String) cmbty.getSelectedItem(), (String) cmbfr.getSelectedItem() }; System.out.println(con.queryInsert("airtel", colon, inf)); // table(); actualiser(); } } catch (Exception e) { e.printStackTrace(); // affiche le détail de l'erreur sur la console JOptionPane.showMessageDialog(this, java.util.Arrays.toString(e.getStackTrace()), e.getClass().getName(), JOptionPane.ERROR_MESSAGE); } -
Bonjour, je viens de corriger mais il ya toujors le meme erreur a savoir
java.lang.NullPointerException
voici les lignes:
at Application.Formtairtel.btnaActionPerformed(Formtairtel.java:531)
il point cette ligne:System.out.println(con.queryInsert("airtel", colon, inf));
Et at Application.Formtairtel.access$400(Formtairtel.java:24)
il point la lignepublic class Formtairtel extends javax.swing.JFrame {
Mais je n'arrive toujours pas comprendre pour quoi.Merci!!
-