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 :

L'index se trouve en dehors des limites du tableau OUTOFRANGEXCEPTION


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 21
    Par défaut L'index se trouve en dehors des limites du tableau OUTOFRANGEXCEPTION
    bonsoir a tous
    en fait j'ai l'erreur : L'index se trouve en dehors des limites du tableau.
    voila mon code : pour afficher le contenu d'un agenda par exemple :
    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
    public Contact.Contact[] getAllAgenda()
            {
                Contact.Contact[] h = new Contact.Contact[]{};
                Int32 i = 0;
                var all = from c in contact select c;
                if (all != null)
                {
                    foreach (Contact.Contact c in all)
                    {
     
                        h[i].Id = c.Id;
                        h[i].nom=c.nom;
                        h[i].prenom=c.prenom;
                        h[i].email=c.email;
                        h[i].Telfixe=c.Telfixe;
                        h[i].Telportable=c.Telportable;
                        i++;
                    }
                }
     
                return h;
            }
    je pense que c'est due a la fonction foreach mais je ne suis pas sure , ce que j'ai écrit me semble plutôt propre mais je pense qu'en faisant i++ il faut vérifier les limites de ma bd par exemple if(i>all.length) break;
    mais all.lenght n'existe pas :s
    enfin j'espére que vous pourrez m'aider
    merciii beaucoup

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 349
    Par défaut
    Salut,

    Tu declares un tableau mais tu indiques pas sa taille...

    Si tu ne connais pas la taille de ton tableau par avance, je te conseille l'utilisation d'une liste...

  3. #3
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 21
    Par défaut
    Citation Envoyé par champomy62 Voir le message
    Salut,

    Tu declares un tableau mais tu indiques pas sa taille...

    Si tu ne connais pas la taille de ton tableau par avance, je te conseille l'utilisation d'une liste...

    une liste ? je veux bien mais il faut qu'elle ait le type que j'ai créé contact.contact et puis les listes en c# c'est pareil qu'en C ? ça remonte a loin tout ça :s dsl

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 067
    Par défaut
    Pour la liste tu peux regarder par là ce que c'est : List

    et ça simplifierait ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public List<contact> getAllAgenda()
            {
                return (from c in contact select c).ToList();
     
            }
    Ta liste sera du type contact par contre (en même temps on dirait qu'il n'y a pas de différence entre Contact.Contact et contact).

  5. #5
    Membre averti
    Inscrit en
    Janvier 2010
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 21
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    Pour la liste tu peux regarder par là ce que c'est : List

    et ça simplifierait ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public List<contact> getAllAgenda()
            {
                return (from c in contact select c).ToList();
     
            }
    Ta liste sera du type contact par contre (en même temps on dirait qu'il n'y a pas de différence entre Contact.Contact et contact).

    bonsoir en fait je me suis inspiré de votre code et apperement ça marche pr remplir la List mais le blem se pose au moment du return voila j'ai ecrit ceci coté serveur :

    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
    public List<Contact.Contact> getAllAgenda()
            {
                init();
     
                List<Contact.Contact> liste_contact = new List<Contact.Contact>();
     
                var all = from c in contact  select c;
                if (all != null)
                {
                    foreach (Contact.Contact c in all)
                    {
     
                        liste_contact.Add(c);
                        Console.WriteLine(liste_contact.Count);
     
     
                    }
                }
     
                Console.WriteLine("prét a retourner");
                return liste_contact;
     
            }
    coté client :
    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
    if(remoteOperation != null){
     
     
    Console.WriteLine("prét a recevoir");
    List<Contact.Contact> j = new List<Contact.Contact>();
     
    j = remoteOperation.getAllAgenda();
     
    for (int i = 0; i < j.Count ; i++)
    {
     
    Console.WriteLine("id " + j[i].Id + " nom " + j[i].nom + " prenom " + j[i].prenom + " email " + j[i].email + " tel fixe " + j[i].Telfixe + " tel port " + j[i].Telportable);
     
     
    }
     
        Console.ReadLine();
     
                        }
    donc la la fct s'esecute trés bien coté serveur mais au moment du retour j'ai THE BIG probleme : erreur connexion au serveur !! (grace au block try catch :p)

    beh je ne vois pas ou est le probleme a part a l’assignation de deux listes , j'aurais pu aussi transmettre la liste en parametres mais c'est trop lours comme operation c'est pas dans la logique de cette programmation ou on cherche a alleger le reseau

    merci beaucoup tout le monde



    edit : j'ai resolu mon blem il fallait juste ajouter [Serializable] avant ma classe type contact pour que l'objet puisse etre transmis sur le réseau ^^
    thx tout le monde

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

Discussions similaires

  1. [Débutant] L'index se trouve en dehors des limites du tableau
    Par zitoune31 dans le forum VB.NET
    Réponses: 3
    Dernier message: 26/10/2012, 13h45
  2. Réponses: 2
    Dernier message: 22/05/2012, 11h01
  3. L'index se trouve en dehors des limites du tableau.
    Par kirby33380 dans le forum C#
    Réponses: 3
    Dernier message: 01/04/2010, 11h45
  4. Erreur : "L'index se trouve en dehors des limites du tableau"
    Par dotnetnuke dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 17/07/2009, 17h36
  5. L'index se trouve en dehors des limites du tableau
    Par LaDeveloppeuse dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/10/2007, 21h11

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