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 :

Index Hors limite sur Data Grid view.


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par défaut Index Hors limite sur Data Grid view.
    Bonjour,

    Dans un programme que je réalise, j'ai un formulaire de recherche qui me retourne une liste d'objet, que j'affiche dans un DataGridView. Cela marche parfaitement Seulement si le nombre de résultat n'est pas égal à 1 (Zéro ça passe, plus que 1 aussi ) et je reçois le message d'erreur suivant :

    L'index était hors limites. Il ne doit pas être négatif et doit être inférieur a la taille de la collection.
    Nom du paramètre : index
    Pourtant en y regardant en debug je constate bien que ma liste contient ce record, mais je ne peut l'afficher.

    Voici le code concerné.

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
           private void buttonRecchercher_Click(object sender, EventArgs e)
            {
                if (dataGridViewEleRechercheEleve.Rows.Count == 0)
                {
     
     
                    if (radioEleAdulte.Checked)
                        type = 'A';
                    if (radioEleEnfant.Checked)
                        type = 'E';
                    if (radioEleHomme.Checked)
                        sexe = 'H';
                    if (radioEleFemme.Checked)
                        sexe = 'F';
     
                    if ((!(radioEleAdulte.Checked)) && (!(radioEleEnfant.Checked)))
                        type = '%';
     
                    if ((!(radioEleHomme.Checked)) && (!(radioEleFemme.Checked)))
                        sexe = '%';
     
                    dataGridViewEleRechercheEleve.Rows.Clear();
                    ele = ServiceEleve.getEleveByCriteria(textEleNom.Text, textElePrenom.Text, sexe, type, textEleAdresse.Text, textEleCp.Text, textElePays.Text, textEleVille.Text, textEleSocmus.Text);
                    count = ele.Count;
                    if (count > 1)
                        dataGridViewEleRechercheEleve.Rows.Add(count);
                    {
                        curseur = 0;
                        while (count > 0)
                        {
                            dataGridViewEleRechercheEleve[0, curseur].Value = ele[curseur].ele_id; //Erreur
                            dataGridViewEleRechercheEleve[1, curseur].Value = ele[curseur].ele_nom;
                            dataGridViewEleRechercheEleve[2, curseur].Value = ele[curseur].ele_prenom;
     
                            if (ele[curseur].ele_sexe == 'H')
                                dataGridViewEleRechercheEleve[3, curseur].Value = "Homme";
                            if (ele[curseur].ele_sexe == 'F')
                                dataGridViewEleRechercheEleve[3, curseur].Value = "Femme";
     
                            if (ele[curseur].ele_type == 'A')
                                dataGridViewEleRechercheEleve[4, curseur].Value = "Adulte";
                            if (ele[curseur].ele_type == 'E')
                                dataGridViewEleRechercheEleve[4, curseur].Value = "Enfant";
     
                            dataGridViewEleRechercheEleve[5, curseur].Value = ele[curseur].ele_adresse;
                            dataGridViewEleRechercheEleve[6, curseur].Value = ele[curseur].ele_cp;
                            dataGridViewEleRechercheEleve[7, curseur].Value = ele[curseur].ele_ville;
                            dataGridViewEleRechercheEleve[8, curseur].Value = ele[curseur].ele_pays;
                            dataGridViewEleRechercheEleve[9, curseur].Value = ele[curseur].ele_socmus;
     
     
     
                            curseur++;
                            count--;
     
                        }
                    }
                }
            }
    Donc je vous demande votre aide pour me montrer ou mon raisonnement n'est pas correct et ce que je pourrai faire pour le corriger car là je suis un peu perdu.

    D'avance Merci.
    Seb ;-)

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Par défaut
    Ligne 26 : "if (count > 1)" ne serait-il pas plutôt "if (count >= 1)" ou "if (count > 0)"

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Par défaut
    En fait en chipotant encore dessus j'ai réussi à régler mon problème.

    J 'ai simplement retiré l'accolade de la ligne 28 et l’accolade fermante relative. Mais maintenant je ne comprend pas tout à fait l'impact négatif qu'avait cette fameuse accolade sur mon code :/.

    Mais merci pour ton conseil.

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 54
    Par défaut
    Je saurais pas te dire ce qui se passe quand tu entoure un code avec des accolades sans condition préalable, mais au lieu de l'enlever tu aurais juste dû la remonter d'une ligne

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

Discussions similaires

  1. [SSRS][2k8] Index hors limites
    Par matb33 dans le forum SSRS
    Réponses: 5
    Dernier message: 12/05/2016, 12h34
  2. Index hors limites avec scanline
    Par Lio590 dans le forum Langage
    Réponses: 17
    Dernier message: 02/04/2011, 17h13
  3. Afficher donnees dans data grid view
    Par B.M.W83 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 30/01/2010, 12h52
  4. message d'erreur du a index hors limites
    Par kate59 dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 19/04/2008, 20h01
  5. data grid view
    Par philguio dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/01/2007, 21h44

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