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 :

Afficher résultat requête SQL en C#


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 38
    Points : 16
    Points
    16
    Par défaut Afficher résultat requête SQL en C#
    Bonjour!

    Petit question concernant l'affichage d'une requête SQL COUNT.

    Je n'ai pas de problème avec insert upload delete mais celle là c'est une autre affaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string sql = "SELECT Type, COUNT(*) FROM Tableau GROUP BY Type";
    Quand je lance cette requête directement dans visual studio elle me dit bien il y a 8 A, 5 B et 3 C (en nombre d’occurrence)
    A | 8
    B | 5
    C | 3

    Par contre si je veux l'afficher dans un richtextbox ça se gâte ça me met directement sans le nombre d'occurence et sans aller à la ligne

    ABC, avec le code ci dessous


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SqlCommand cmd = new SqlCommand(sql, connect);
                  try
                {
     
    while (rdr.Read())
                    {
                        richTextBox1.AppendText(rdr.GetString(0));
                    }
     
    }
    J'ai essayé de trouver d'autres méthodes vraiment je vois pas je suis désespéré ça fait 5 jours que je suis dessus : ( au secours!

    Merci à vous!

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    ca ne fait que ce que tu lui dis de faire ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while (rdr.Read())
    {
    richTextBox1.AppendText(rdr.GetString(0));
    richTextBox1.AppendText(rdr.GetInt32(1));
    richTextBox1.AppendText(Environment.NewLine);
    }
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 38
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    ca ne fait que ce que tu lui dis de faire ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while (rdr.Read())
    {
    richTextBox1.AppendText(rdr.GetString(0));
    richTextBox1.AppendText(rdr.GetInt32(1));
    richTextBox1.AppendText(Environment.NewLine);
    }
    Oui ça je sais que ça vient de moi je ne remet pas en question la machine ^^ bien sûr!

    Je viens d'essayer ton code ça saute des lignes (et c'est déjà magique!)

    Par contre j'ai une erreur de syntaxe pour getstring (1) c'est pour la colonne "2"? mais je n'ai qu'une seule colonne.

    "erreur conversion impossible de int en string."

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    richTextBox1.AppendText(rdr.GetString(0));
                            richTextBox1.AppendText(rdr.GetInt32(1));
                            richTextBox1.AppendText(Environment.NewLine);

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    donc tu as bien 2 colonnes dans le select, donc tu peux accéder aux 2

    il râle juste par il ne mélange pas les torchons et les serviettes
    GetInt32() retourne un int, or la méthode appendtext attend un string
    donc il râle, et il faut lui dire de transformer l'int en string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    richTextBox1.AppendText(rdr.GetInt32(1).ToString);
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    après quand on fait propre, on donne un nom à la colonne calculée (une colonne calculée étant une colonne "virtuelle" car non issue d'une colonne d'une table)
    c'est le cas de ton count

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Type, COUNT(*) as NB

    et on utilise les noms de colonnes pour lire les données plutôt que l'index de la colonne
    sinon le jour ou tu modifies la requête soit tu dois changer les lignes de code, soit ca bug ^^

    pour ça, il y a la propriété Item qui demande un string du nom de la colonne (d'où l'utilité aussi de nommer les colonnes calculées)
    par contre cette méthode retourne une variable de type Object, donc à caster sur le type voulu
    (ils auraient pu mettre des fonctions GetXXX qui demande le nom de la colonne, mais ca doit pouvoir se rajouter avec les méthodes d'extensions, enfin oublie ça si tu débutes et utilise le cast explicite)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 38
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    donc tu as bien 2 colonnes dans le select, donc tu peux accéder aux 2

    il râle juste par il ne mélange pas les torchons et les serviettes
    GetInt32() retourne un int, or la méthode appendtext attend un string
    donc il râle, et il faut lui dire de transformer l'int en string

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    richTextBox1.AppendText(rdr.GetInt32(1).ToString);
    Franchement j'ai pas trop compris pour les colonnes (dans ma table "Tableau" j'ai une seule colonne "Type") mais quoi qu'il soit ça marche capitaine! T'imagine ça fait 5 jours que je suis dessus j'ai cherché sur internet des livres en anglais et tu me résous le problème en 5min!

    Bravo et mille merci(s)!

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 38
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    après quand on fait propre, on donne un nom à la colonne calculée (une colonne calculée étant une colonne "virtuelle" car non issue d'une colonne d'une table)
    c'est le cas de ton count

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Type, COUNT(*) as NB

    et on utilise les noms de colonnes pour lire les données plutôt que l'index de la colonne
    sinon le jour ou tu modifies la requête soit tu dois changer les lignes de code, soit ca bug ^^

    pour ça, il y a la propriété Item qui demande un string du nom de la colonne (d'où l'utilité aussi de nommer les colonnes calculées)
    par contre cette méthode retourne une variable de type Object, donc à caster sur le type voulu
    (ils auraient pu mettre des fonctions GetXXX qui demande le nom de la colonne, mais ca doit pouvoir se rajouter avec les méthodes d'extensions, enfin oublie ça si tu débutes et utilise le cast explicite)
    Merci pour l'info !

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

Discussions similaires

  1. Afficher résultat requête SQL sur un mois
    Par chris52 dans le forum Requêtes
    Réponses: 11
    Dernier message: 25/09/2014, 12h02
  2. [AJAX] Afficher résultat requête SQL avec ajax
    Par Kevfou dans le forum AJAX
    Réponses: 2
    Dernier message: 01/11/2011, 16h54
  3. Afficher résultat requête SQL dans Textbox
    Par makin_toch dans le forum ASP.NET
    Réponses: 6
    Dernier message: 11/05/2011, 18h00
  4. [MySQL] Affichage résultat requête SQL dans page HTML comme un tableau
    Par joxbl dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 14/03/2011, 14h26
  5. résultat requêtes sql
    Par mmb04 dans le forum JDBC
    Réponses: 11
    Dernier message: 22/03/2007, 16h06

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