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

Windows Forms Discussion :

Problème boucle lecture DatagridView


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Par défaut Problème boucle lecture DatagridView
    bonjour, j'utilise ChartFX afin de modéliser graphiquement mes données dans mon application. Ce graph lit les lignes de 2 colonnes d'un datagridview (des prix et des dates). Seulement, voilà, la datagridview est trié par ordre décroissant, avec la date la plus récente en haut. Mais pour la graph, je dois lire le tableau "à l'envers" pour que la date la plus récente soit à droite et non à gauche.

    Voilà ma boucle:
    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
     
    string num_string = dataGridView3.RowCount.ToString();
                int num = Convert.ToInt32(num_string);
                int i = 0;
     
    //...
     
    for (int ligne = 0 ; ligne < num;) 
                {
     
                    string date = (string)dataGridView3.Rows[i].Cells[0].Value.ToString();
                    double prix = (double)dataGridView3.Rows[i].Cells[1].Value;
     
                    CGraph.Value[0,i] = prix;            
                    CGraph.Legend[i] = date;
                    ligne++;
                    i++;
     
    //...
    Donc je me suis dit que pour faire il faudrait:

    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 num_string = dataGridView3.RowCount.ToString();
                int num = Convert.ToInt32(num_string);
     
    //...
     
    for (int i = num ; i > 0;) 
                {
     
                    string date = (string)dataGridView3.Rows[i].Cells[0].Value.ToString();
                    double prix = (double)dataGridView3.Rows[i].Cells[1].Value;
     
                    CGraph.Value[0,i] = prix;            
                    CGraph.Legend[i] = date;
                    i--;
     
    //...
    Mais cela m'affiche une erreur d'index hors tableau, et ne m'affiche donc rien...

    Une solution? Merci d'avance.
    Mais

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    d'abord, je ne comprends pas pourquoi tu passes par une string pour récupérer le nombre de lignes...
    RowCount est un int, tu peux l'utiliser directement...

    Sinon les bornes de ta boucle sont incorrectes, il faut faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (int i = num - 1; i >= 0;)
    N'oublie pas qu'en .NET les indexes commencent à 0 et non à 1...

  3. #3
    Membre confirmé Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Par défaut
    D'accord, pour le rowcount, j'avoue...bon
    Mais là ça marche très bien, seulement ça m'affiche mes données dans le meme ordre, le plus récent à gauche (en premier) et le plus ancien à droite. C'est l'inverse que je veux, je comprend pas pourquoi il me le fait pas..

  4. #4
    Membre très actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Par défaut
    Parcours ta grid de bas en haut, non?

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Saten Voir le message
    Mais là ça marche très bien, seulement ça m'affiche mes données dans le meme ordre, le plus récent à gauche (en premier) et le plus ancien à droite. C'est l'inverse que je veux, je comprend pas pourquoi il me le fait pas..
    Parce que tu remplis CGraph.Value dans le même sens que tu lis la grille... il faut lire la grille de bas en haut, et remplir CGGraph.Value de haut en bas (ou l'inverse...). Utilise dans ta boucle un 2e compteur, qui évolue en sens inverse de i

  6. #6
    Membre confirmé Avatar de Saten
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 203
    Par défaut
    Merci!

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/11/2009, 16h35
  2. problème de lecture en boucle
    Par ulfhamir dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 30/03/2009, 10h40
  3. Problème de lecture d'un stream dans une boucle
    Par Kerberos69 dans le forum VBScript
    Réponses: 3
    Dernier message: 09/03/2009, 19h43
  4. problème de lecture en boucle d'un générique de fin
    Par FrenchCat dans le forum Powerpoint
    Réponses: 3
    Dernier message: 06/11/2007, 19h12
  5. Problème de lecture en boucle
    Par masseur dans le forum Flash
    Réponses: 3
    Dernier message: 17/10/2006, 15h14

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