IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JDBC Java Discussion :

Afficher le résultat d'un SELECT COUNT (id) dans un JTextField


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Par défaut Afficher le résultat d'un SELECT COUNT (id) dans un JTextField
    Bonjour tout le monde !!
    j'ai un problème pour affecter le résultat de ma requête qui est:
    String requete ="SELECT COUNT(Num_FactVte) FROM Facture_Vente As Compte ";
    Mon JTextField TNum_FactVte.
    Si quelqu'un pouvait m'aider!
    Voici la méthode de remplissage:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
     private void FillField() throws SQLException{
             int Compte = 0;
             String Num="";
        try {
            String requete ="SELECT COUNT(Num_FactVte) FROM Facture_Vente As Compte  ";
            rest=bd.executionQuery(requete);
           while(rest.next()){
                Compte = rest.getInt(1)+1;
              Num=Integer.toString(Compte);
           }
           System.out.println(Compte);
     
               Num_FactVte.setText(rest.getString(Num));
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Facture_Vente.class.getName()).log(Level.SEVERE, null, ex);
        }
    Lors de l'execution j'ai une Exception de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT COUNT(Num_FactVte) FROM Facture_Vente As Compte  
    1
    mars 22, 2017 3:43:12 PM com.GestForms.Facture_Vente <init>
    GRAVE: null
    java.sql.SQLException: Column '1' not found.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    tu peux mettre la stacktrace complete de l'exception?

  3. #3
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Mmm ça me semble assez tordu comme code :


    1. Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      String requete ="SELECT COUNT(Num_FactVte) FROM Facture_Vente As Compte  ";
      rest=bd.executionQuery(requete);
      Je fait un select count, donc à priori je vais récupérer 1 seul enregistrement, avec une seule colonne, qui s'appelle "Compte".

    2. Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      Compte = rest.getInt(1)+1;
                Num=Integer.toString(Compte);
      Je récupère la valeur de ce comptage, un nombre à priori supérieur ou égal à 0, auquel j'ajoute 1, donc j'obtiens un nombre supérieur ou égal à 1.
      Nombre que je transforme en String.

    3. Code : Sélectionner tout - Visualiser dans une fenêtre à part
                 Num_FactVte.setText(rest.getString(Num));
      Je récupère un champ qui s'appelle comme le nombre que j'ai obtenu précédemment. Donc par exemple, si le compte est 0, je lis une colonne qui s'appelle "1".
      Comme il n'y a qu'une colonne et qu'elle s'appelle "Compte", ça ne m'étonne pas d'obtenir le message : "Column '1' not found." : la colonne qui s'appelle "1" n'a pas été trouvée...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Par défaut Afficher le résultat d'un SELECT COUNT (id) dans un JTextField
    Salut tchize excuse moi du retard, je viens de mettre le StackTrace Mais c'est toujours la même erreur.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Par défaut
    Salut !! En suivant les explications de Joel sur mon code, j'ai tenter de resoudre le problème Mais jusque là rien. Si quelqu'un à une autre solution pour moi, ça me ferra vraiment plaisir.
    Mon objectif c'est de créer un numéro de facture qui me donerai: "VTE-000001" et "000001" s'incremente à chaque nouvelle facture.
    Si vous pouvez me donner une piste je n'hésiterai pas à la suivre.

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Ah, c'est ça le but.

    Déjà, si tu voulais le faire comme ça, il faudrait lire le dernier numéro (parce qu'avec un count, si tu as des factures supprimées, tu vas avoir des doublons de numéros), et l'incrémenter. Mais le problème c'est que ce genre de truc ne doit pas être fait côté client, parce que si plusieurs personnes créent une facture en même temps, elles vont avoir le même numéro de facture. Il faudrait utiliser une séquence paramétrée dans le serveur, pour générer un identiifant unique, et ensuite l'utiliser pour créer le numéro de facture. Le souci est si tu veux pouvoir afficher le numéro avant la création de l'enregistrement, il faudra créer la facture (pour verrouiller l'identifiant) avant d'en saisir les informations.

    La création de séquence se fait côté base de données et dépend donc du SGBD que tu utilises.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  7. #7
    Membre émérite Avatar de Cincinnatus
    Homme Profil pro
    Développeur d'applications métier
    Inscrit en
    Mars 2007
    Messages
    593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur d'applications métier
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2007
    Messages : 593
    Par défaut
    Citation Envoyé par ACHILLE SOURABIE Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
            String requete ="SELECT COUNT(Num_FactVte) FROM Facture_Vente As Compte  ";
    Lors de l'execution j'ai une Exception de ce genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT COUNT(Num_FactVte) FROM Facture_Vente As Compte  
    1
    mars 22, 2017 3:43:12 PM com.GestForms.Facture_Vente <init>
    GRAVE: null
    java.sql.SQLException: Column '1' not found.

    Bonjour,

    La requête fonctionne-t-elle lors d'un appel direct à la base ?
    Je pense que le 'As Compte' à la fin, après le FROM, est mal placé... Cet alias s'applique à la table ? Dans ce cas, le AS est à retirer. Au résultat du count ? l'alias est à placer avant le FROM.

    Mais il semble que ton problème soit plutôt au niveau des séquences. Je suis plutôt sur Oracle, mais sur MySQL il y a des colonnes de type AUTO_INCREMENT.
    cf https://www.developpez.net/forums/d5...uto-increment/

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2014
    Messages : 8
    Par défaut
    Merci à tous le problèm est enfin resolut. voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     String pref="VTE-";
             int cpte=0;
             String requet ="SELECT MAX(Num_FactVte) FROM Facture_Vente As Compte  ";
        try {
            rest=bd.executionQuery(requet);
     
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(Facture_Vente.class.getName()).log(Level.SEVERE, null, ex);
        } 
     
        try {
            rest.next();
            cpte=rest.getInt(1)+1;
        } catch (SQLException ex) {
            Logger.getLogger(Facture_Vente.class.getName()).log(Level.SEVERE, null, ex);
        }
                txt_Num.setText(pref.concat(Integer.toString(cpte)));

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Afficher résultat d'un SELECT COUNT (PDO) en PHP
    Par gat91200 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/07/2015, 22h11
  2. Afficher la résultat d'une SELECT dans un tableau(MYSQL)
    Par karamovic dans le forum Android
    Réponses: 3
    Dernier message: 02/05/2012, 09h11
  3. Réponses: 2
    Dernier message: 20/12/2011, 14h06
  4. [PDO] Afficher le résultat d'un select sans foreach
    Par arthuro45 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 16/11/2010, 17h35
  5. [MySQL] Afficher le résultat de la fonction "count"
    Par sybil dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/04/2009, 19h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo