Problème Index hors limite [Résolu]

Signaler
Messages postés
24
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
16 avril 2013
-
Messages postés
9
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
13 novembre 2011
-
Bonjour.
J'ai un problème au niveau de mon code, je souhaite récupérer des données dans ma base, les stocker dans une liste (mesCamions) et m'en servir pour remplir un datagridview, voila le bout de code qui me pose problème:

//déclaration de ma liste
List<camion> mesCamions;
mesCamions= new List<camion>();
// déclaration de mon index
int i;
i = 0;
//boucle pour remplir ma liste de camions
while (dr.Read())
{ mesCamions[i].Immatriculation = dr[ "AUTMAT"].ToString();
mesCamions[i].Adresse = dr["LBADR1"].ToString();
mesCamions[i].Complement = dr["LBADR2"].ToString();
mesCamions[i].DateEntree = dr["DTENTA"].ToString();
mesCamions[i].Nom = dr["NMCLI"].ToString();
mesCamions[i].Nomcla = dr["NMCLA"].ToString();
mesCamions[i].Ville = dr["LBVILL"].ToString();
mesCamions[i].Notel = dr["NOTEL1"].ToString();
mesCamions[i].Cp = dr["CDPOST"].ToString();
i++;}
Je travaille sous visual studio et j'ai une erreur:
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

Que je mette l'index à 1 ou à zéro j'ai le même souci.
Quelqu'un peut il m'aider svp? je débute  et j'ai vraiment du mal
A voir également:

5 réponses

Messages postés
357
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
26 décembre 2011
3
Salut,
C'est normal ta liste "mesCamions" est vide.
Quand tu essaye d'accéder à un élément tu ne peut pas.
Il faut y ajouter des élément via la méthode Add.

1) 1er solution

while (dr.Read())
{
mesCamions.Add(new camion());
mesCamions[i].Immatriculation = dr["AUTMAT"].ToString();
mesCamions[i].Adresse = dr["LBADR1"].ToString();
mesCamions[i].Complement = dr["LBADR2"].ToString();
mesCamions[i].DateEntree = dr["DTENTA"].ToString();
mesCamions[i].Nom = dr["NMCLI"].ToString();
mesCamions[i].Nomcla = dr["NMCLA"].ToString();
mesCamions[i].Ville = dr["LBVILL"].ToString();
mesCamions[i].Notel = dr["NOTEL1"].ToString();
mesCamions[i].Cp = dr["CDPOST"].ToString();
i++;
}

1) 2eme solution

while (dr.Read())

{
camion MonCamion =  new camion();


MonCamion.Immatriculation = dr["AUTMAT"].ToString();

MonCamion.Adresse = dr["LBADR1"].ToString();

MonCamion.Complement = dr["LBADR2"].ToString();

MonCamion.DateEntree = dr["DTENTA"].ToString();

MonCamion.Nom = dr["NMCLI"].ToString();

MonCamion.Nomcla = dr["NMCLA"].ToString();

MonCamion.Ville = dr["LBVILL"].ToString();

MonCamion.Notel = dr["NOTEL1"].ToString();

MonCamion.Cp = dr["CDPOST"].ToString();

mesCamions.Add(MonCamion);


}

A+
Messages postés
9
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
13 novembre 2011
1
Slt à ts ! je sollicite votre aide.

Je souhaite affiche des onglets au fur et à mésure que je clique sur des éléments de mon menu.
le problème est que lorsque je souhaite afficher un onglet déjà affiché, il me sort l'erreur suivante : l'index était hors limite, il ne doit pas être négatif et supérieur à la taille de la collection. L'index me ramène une valeur de -1.
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
8
Salut,

ta liste est vide, donc mesCamions[i] te retournera toujours une exception quelque soit i

Essaye de créer un nouveau camion dans ta boucle et de l'ajouter à ta liste

while(dr.Read())
{
camion cam = new Camion();
cam.Adresse = ..
cam.Complement = ...

mesCamions.Add(cam);
}
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
8
lol dsl j'avais pas rafraîchi la page avant de poster
Messages postés
24
Date d'inscription
vendredi 18 avril 2008
Statut
Membre
Dernière intervention
16 avril 2013

merci c'est bien ça!!! merci beaucoup pour vos réponses