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 :

récupérer un montant pour afficher dans un label [Fait]


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 103
    Points
    103
    Par défaut récupérer un montant pour afficher dans un label
    Bonjour,

    J'essaie de mettre dans un label la valeur d'un datareader :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      SQLQuery = "SELECT sum(PrixAchat) FROM gratuit where dateRemb='NULL'";
                            reader = sqlCommand.ExecuteReader();
                            if (reader.HasRows)
                            {
                                MessageBox.Show("test OK");
                            }
    Ceci ne marche pas, car HasRows n'est pas pris en compte (problème de curseur qui ne peut se déplacer. Si je ne test pas avec HasRows, je suis jeté parce qu'il n"y pas de données (donc valeur 0, ce qui en fait me conviendraits tout à fait).

    Quelque chose de cet ordre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while (reader.Read())
                            {
                                montant = montant + reader.GetSqlMoney(0);
                            };
    ne marche pas non plus, problème de cast (montant est de type décimal)

    Merci d'avance popur vos idées

  2. #2
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Citation Envoyé par talapoga Voir le message
    Quelque chose de cet ordre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while (reader.Read())
    {
        montant = montant + reader.GetSqlMoney(0);
    };
    ne marche pas non plus, problème de cast (montant est de type décimal
    On va appeler la MSDN

    1. tu prends la documentation de la méthode GetSqlMoney
    2. tu constates que cela retourne un objet de type SqlMoney
    3. tu regardes la documentation du type SqlMoney
    4. tu constates la présence d'une méthode ToDecimal

    Le code deviendrait donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while (reader.Read())
    {
        montant += reader.GetSqlMoney(0).ToDecimal();
    };
    Pratique la doc

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par StormimOn Voir le message
    On va appeler la MSDN
    [...]

    Pratique la doc
    Oui effectivement !

    Je regarde et teste ca.
    Merci

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 317
    Points
    13 317
    Par défaut
    De plus, ici il s'agit du retour d'une fonction d'aggrégat, donc il n'y a aucun interêt à utiliser un reader.
    Autant appeler ExecuteScalar et récupérer directement la valeur en question.

  5. #5
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    De plus, ici il s'agit du retour d'une fonction d'aggrégat, donc il n'y a aucun interêt à utiliser un reader.
    Autant appeler ExecuteScalar et récupérer directement la valeur en question.
    Pourquoi j'ai pas vu ça

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    De plus, ici il s'agit du retour d'une fonction d'aggrégat, donc il n'y a aucun interêt à utiliser un reader.
    Autant appeler ExecuteScalar et récupérer directement la valeur en question.
    Ah, ca je ne connais pas. Je vais essayer d'autant que mon Datareader ne me renvoie pas de données (plantage lors de l'execution) alors que la requête traitée avec l'outil de requête fourni donne bien le résultat attendu.

    Par contre j'avoue ne pas voir l'intérêt spécifique de la commande, puisque l'ensemble des colonnes est remontée depuis le serveur, le temps de traitement doit être quasi similaire à un ExecuteReader, non ?

    Je creuse et je vois e que ca donne.
    Merci

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par talapoga Voir le message
    |...|
    Je creuse et je vois e que ca donne.
    Merci
    Bon, le "ToDecimal()" (pour mon test) ou "ToString()" (pour le label) ne fonctionnent pas (je le croyais parce que je n'avais plus d'erreurs,masquée qu'elles étaient par celles concernant la requête SQL, péché d'optimisme) et j'ai toujours des erreur de cast, ce qui est rageant dans la mesure ou le datagridview se remplit pour ca art sans poser le moindre soucis.

    Donc je cherche encore ;-)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par talapoga Voir le message
    B[...]

    Donc je cherche encore ;-)
    Là c'est bon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SQLQuery = "SELECT sum(PrixAchat) AS cumul FROM gratuit WHERE (dateRemb IS NULL)";
                            sqlCommand = new SqlCeCommand(SQLQuery, connexion);
                            reader = sqlCommand.ExecuteReader();
                            reader.Read();
                            lblEncours.Text = reader["cumul"].ToString();
    Des fois que ca puisse servir ;-)

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/01/2012, 09h27
  2. Réponses: 0
    Dernier message: 27/10/2011, 12h40
  3. PHP/FLASH récupérer une variable pour afficher une image dans un clip
    Par Touillette85 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 17/12/2008, 10h02
  4. Réponses: 14
    Dernier message: 05/05/2008, 15h35
  5. delphi:comment afficher dans un label
    Par imeys dans le forum Bases de données
    Réponses: 3
    Dernier message: 26/04/2006, 18h56

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