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

C# Discussion :

Problème méthode COUNT [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 41
    Par défaut Problème méthode COUNT
    Bonjour,

    J'ai un petit projet que j'ai développé en 2 petites semaines, un outil pour enregistrer des commandes, les modifier, les visualiser, les extraire sous excel, etc..

    Cependant, quand je veux récupérer le nombre de commandes qu'il y a dans ma base de données, ma méthode ne fonctionne pas.. J'ai essayé ma requête dans MySql, elle fonctionne, j'ai essayé de récupérer la valeur avec un reader, avec un scalar, sans succès.. Alors soit je suis pas encore réveillé, soit un truc spécifique que j'ai pas pigé..

    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
    18
    19
    20
    21
    22
    23
    24
    25
     
    public int CountCommande(int year)
            {
                int nbCommandes = 0;
                try
                {
                    // Ouverture de la connexion SQL
                    this.connection.Open();
     
                    // Création d'une commande SQL en fonction de l'objet connection
                    MySqlCommand cmd = this.connection.CreateCommand();
                    // Requête SQL
                    cmd.CommandText = "SELECT COUNT(*) AS nbCommandes FROM COMMANDE WHERE year(dateC) = @year";
                    cmd.Parameters.AddWithValue("@year", year);
                    nbCommandes = (int)cmd.ExecuteScalar();
     
                    // Fermeture de la connexion
                    this.connection.Close();
                }
                catch
                {
     
                }
                return (int)nbCommandes;
            }

  2. #2
    Membre chevronné Avatar de WaterTwelve21
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2015
    Messages
    270
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2015
    Messages : 270
    Par défaut
    Bonjour ,

    La syntaxe de ta requête me semble correcte et passer par un ExecuteScalar est une bonne chose aussi , tu dit avoir essayé avec un DataReader est tout de même sans succès, le problème doit venir d'ailleurs.
    Debug au pas à pas , il y a peut-être une petite coquille .

    A bientôt.

    EDIT : petits conseils en passant :
    - il est préférable de fermer la connection en dehors du try/catch voir dans un finnaly
    - le cast au niveau du return est inutile non ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 41
    Par défaut
    D'abord merci pour ta réponse !

    J'ai donc exécuté pas à pas, il arrive sur le "this.connection.Open()" et psse directement au catch.. Il n'arrive pas à se connecter à la base de données ? Pourtant toutes mes autres méthodes utilisent la même chaîne de connexion et fonctionnent..

    Et oui oui le cast du return c'est inutile, juste une tentative désespérée :')

  4. #4
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    try/catcher c'est bien, récupérer l'exception c'est mieux.
    D'ailleurs si t'avais pas try/catché ton prog aurait planté, mais tu aurais eu l'info sur le pb
    Récupère les info de l'exception avec un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try {
        cnx.Open();
        // blabla
    } catch (Exception ex) {
        MessageBox.Show(ex.Message);
    }
    Ou mieux, mets un point d'arrêt sur la ligne dans le catch et regarde le détail de l'exception dans la fenêtre espion.

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    La connexion n'est pas déjà ouverte?

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 41
    Par défaut
    Merci pour ta réponse.

    Quand je catch l'exeption, il m'affiche -2146233079, j'ai cherché un peu de mon côté et on dirait qu'il n'arrive pas à se connecter à ma base de données.. Mais comme j'ai dis, j'utilise la même chaîne de connexion que mes autres méthodes alors.. Pourquoi ? :')

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2016
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2016
    Messages : 41
    Par défaut
    Et non ZenZiTone, j'appel juste une autre méthode avant celle-ci, j'ai bien vérifié avoir fermé la connexion à la fin de celle-ci et elle l'est

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

Discussions similaires

  1. Problème de count
    Par Mat_DZ dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/08/2006, 16h18
  2. [EJB2.1 Entity] Problème méthode findAll() avec Jonas 4.7.4
    Par mixouille dans le forum Java EE
    Réponses: 1
    Dernier message: 28/07/2006, 12h06
  3. Problème méthode NUM
    Par Pfeffer dans le forum 4D
    Réponses: 2
    Dernier message: 10/07/2006, 09h17
  4. Problème avec COUNT
    Par LhIaScZkTer dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/01/2006, 02h16
  5. Access/SQL : Problème avec Count
    Par Taurëndil dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/01/2005, 15h49

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