BDD nombre de colonnes hors limite

Résolu/Fermé
rapidegoyes Messages postés 92 Date d'inscription samedi 22 février 2020 Statut Membre Dernière intervention 16 octobre 2024 - 22 janv. 2022 à 23:12
rapidegoyes Messages postés 92 Date d'inscription samedi 22 février 2020 Statut Membre Dernière intervention 16 octobre 2024 - 23 janv. 2022 à 22:17
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:

 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
A voir également:

5 réponses

jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703
22 janv. 2022 à 23:18
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
1
rapidegoyes Messages postés 92 Date d'inscription samedi 22 février 2020 Statut Membre Dernière intervention 16 octobre 2024 7
22 janv. 2022 à 23:56
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
1
jordane45 Messages postés 38289 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 novembre 2024 4 703
23 janv. 2022 à 08:00
Tu es sûr que ton champ en BDD se nomme "Nom" et non pas "nom" ?
Tu pourrais nous montrer la structure exacte de ta table ?
0
rapidegoyes Messages postés 92 Date d'inscription samedi 22 février 2020 Statut Membre Dernière intervention 16 octobre 2024 7
Modifié le 23 janv. 2022 à 11:18
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
1
rapidegoyes Messages postés 92 Date d'inscription samedi 22 février 2020 Statut Membre Dernière intervention 16 octobre 2024 7
23 janv. 2022 à 17:55
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
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rapidegoyes Messages postés 92 Date d'inscription samedi 22 février 2020 Statut Membre Dernière intervention 16 octobre 2024 7
23 janv. 2022 à 22:17
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
1