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 :

ArgumentOutOfRangeException taille collection


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 125
    Points : 63
    Points
    63
    Par défaut ArgumentOutOfRangeException taille collection
    Bonjour à tous,
    Je rempli dans un listview les informations relatives à un membre d'un groupe AD (sAMAccountName, cn, givenName...). Sur certains groupe l'opération fonctionne. Dans d'autre j'ai une exception type
    ArgumentOutOfRange : l'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection. Nom du paramètre : index)
    Quelqu'un aurait-il un moyen de solutionner ce problème ?
    Merci d'avance, bonne journée.

  2. #2
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    Salut

    Ton problème c'est typiquement un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int[] myTab = new int[]{ 1, 2, 3 };
    int outOfRangeIndexValue_1 = myTab[-1];
    // Ou
    int outOfRangeIndexValue_2 = myTab[4];
    Dans ton cas c'est ta variable index qui est foireuse, il te faut tester :

    • si ta listview n'est pas nulle ou vide
    • si ton index n'est pas négatif ou supérieur au nombre d'éléments de ta listview - 1

    Ça devrait aller

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 125
    Points : 63
    Points
    63
    Par défaut
    D'accord mais comment tester la variable de mon index ?
    Voilà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                        foreach (string cnMember in sr.GetDirectoryEntry().Properties["member"])
                        {
                            DirectoryEntry memberAd = new DirectoryEntry("LDAP://" + txtBox5 + "/" + cnMember, txtBox2, txtBox3);
     
                            ListViewItem lvi = new ListViewItem((string)memberAd.Properties["sAMAccountName"][0]);
                            lvi.SubItems.Add((string)memberAd.Properties["givenName"][0]);
                            lvi.SubItems.Add((string)memberAd.Properties["cn"][0]);
                            this.listView1.Items.Add(lvi);
                        }

  4. #4
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 933
    Points
    14 933
    Par défaut
    Vu que tu utilises que des index à 0 (enfin dans ce que tu montres), le problème doit venir des index de type texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (memberAd.Properties["sAMAccountName"] != null) {
        string sAMAccountName = (string)memberAd.Properties["sAMAccountName"][0];
    }
    A priori, d'un point de vue AD, l'erreur doit venir probablement du givenName, le sAMAccountName et le cn étant deux attributs vraiment élémentaires

    EDIT

    N'hésite pas à aller voir les entrées qui plantent directement dans un browser LDAP, tu pourras voir quels sont les attributs renseignés ou non et cela te fournira de bonnes pistes

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 125
    Points : 63
    Points
    63
    Par défaut
    Merci eusebe, j'ai uniquement gardé le sAMAccountName. C'était l'attribut le plus important. Pour le cas des groupes locaux : givenName et cn sont obsolètes.

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

Discussions similaires

  1. collection et taille memoires
    Par opensource dans le forum Langage
    Réponses: 8
    Dernier message: 20/02/2008, 08h57
  2. [JSTL] Accéder à la taille d'une Collection
    Par 84mickael dans le forum Taglibs
    Réponses: 2
    Dernier message: 21/08/2007, 12h09
  3. comment compter la taille d'une query/collection ?
    Par shawty dans le forum Hibernate
    Réponses: 4
    Dernier message: 12/04/2007, 14h12
  4. Taille Collection Types
    Par alonso dans le forum SQL
    Réponses: 1
    Dernier message: 11/04/2007, 16h46
  5. [Iterate] rowspan dynamique et taille de Collection
    Par yolepro dans le forum Struts 1
    Réponses: 5
    Dernier message: 27/07/2006, 12h14

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