BDD nombre de colonnes hors limite
Résolu
rapidegoyes
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
rapidegoyes Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
rapidegoyes Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je code un petit programme avec netbeans java et Postgres sous pgAdmin3.
J'ai une table avec 5 colonnes ( id, Nom, Prenom, Telephone, Courriel).
La connexion se fait, mais l'appli plante avec le message d'erreur suivant:
org.postgresql.util.PSQLException: L'indice de la colonne est hors limite : 5, nombre de colonnes : 4.
Vu ci-dessus je compte bien 5 colonnes !!!
Je vous prie de bien vouloir m'aider cela fait 5 soirées que je suis dessus
cordialement et merci
rapidegoyes
Voici ma fonction:
Je code un petit programme avec netbeans java et Postgres sous pgAdmin3.
J'ai une table avec 5 colonnes ( id, Nom, Prenom, Telephone, Courriel).
La connexion se fait, mais l'appli plante avec le message d'erreur suivant:
org.postgresql.util.PSQLException: L'indice de la colonne est hors limite : 5, nombre de colonnes : 4.
Vu ci-dessus je compte bien 5 colonnes !!!
Je vous prie de bien vouloir m'aider cela fait 5 soirées que je suis dessus
cordialement et merci
rapidegoyes
Voici ma fonction:
private void but_EnregistActionPerformed(java.awt.event.ActionEvent evt)
{
try
{
String requete = "INSERT INTO renseignements (Nom, Prenom, Telephone, Courriel)";
requete+= "VALUES (?,?,?,?);";
PreparedStatement ps = connect.getInstance().prepareStatement(requete);
ps.setString(2, txt_Nom.getText());
ps.setString(3, txt_Prenom.getText());
ps.setString(4, txt_Telephon.getText());
ps.setString(5, txt_Mail.getText());
ps.executeUpdate();
JOptionPane.showMessageDialog(this, "requête exécutée avec succès");
} catch (SQLException ex)
{
Logger.getLogger(Interface_Utili.class.getName()).log(Level.SEVERE, null, ex);
}
}
Configuration: Windows / Firefox 96.0
5 réponses
-
Bonjour;
Sachant que dans ta requête tu ne lui passes que 4 variables ( symbolisés par des points d'interrogation )
Je doute que le ps.setString(5 soit bon... Et le manque le ps.setString(1
-
Bonsoir
merci de répondre
J'ai déjà essayé avec 1 alors le message d'erreur est différent comme suit:
org.postgresql.util.PSQLException: ERREUR: la colonne « nom » de la relation « renseignements » n'existe pas
vraiment je ne vois pas de solution
Merci de m'aider cordialement
rapidegoyes -
Bonjour
Merci de m'épauler
Oui je suis sûr du de l'intitulé de la colonne qui après la colonne id, c'est bien Nom avec majuscule.
Maintenant comment faire pour montrer ma table qui se trouve sur postGres Admin 3.
cordialement à +++
rapidegoyes -
Bonjour jordane45
Entretemps j'ai modifié mon code.
1) j'ai renommé mes colonnes avec des minuscules.
2) j'ai modifié ma fonction voir ci-dessous, en mettant les minuscules et en ajoutant une valeur pour id devant les paramètres points d'interrogations.
3) j'ai remis les chiffres d'ordre à partir de 1
4) compiler avec clean .
Cette fois-ci les données sont transmises dans les colonnes respectives!
Ma question une chose que je ne comprends pas; pour la colonne id.
1) Est-ce que celle -ci peut s' incrémentée automatiquement comme dans sqlite android ?
2) Ou faut-il la remplir à chaque enregistrement ?
Pour mon essai dans le code ci-dessous j'ai ajouté le chiffre 1 pour essai et là les données sont insérées !
voici ma fonction modifiée
private void but_EnregistActionPerformed(java.awt.event.ActionEvent evt)
{
try
{
String requete = "INSERT INTO renseignements (id, nom, prenom, telephone, courriel)";
requete+= "VALUES (1, ?,?,?,?);";
PreparedStatement ps = connect.getInstance().prepareStatement(requete);
ps.setString(1, txt_Nom.getText());
ps.setString(2, txt_Prenom.getText());
ps.setString(3, txt_Telephon.getText());
ps.setString(4, txt_Mail.getText());
ps.executeUpdate();
JOptionPane.showMessageDialog(this, "requête exécutée avec succès");
} catch (SQLException ex)
{
Logger.getLogger(Interface_Utili.class.getName()).log(Level.SEVERE, null, ex);
}
}
merci de m'aider
à +++
rapidego -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonsoir jordan45 et tous
Merci pour ton aide,
J'ai refais entièrement ma table renseignements
Je viens d'arranger l'incrémentation automatique dans postgres pgAdmin4.
J'ai ajouté une séquence: sur la clé primaire nommée maseq nextval('maseq'::regclass) avec type de donnée bigint.
Apparemment cela fonctionne tout s'incrémente
En tout cas merci pour ton aide et à +++
cordialement
rapidegoyes