Erreur exeption

fl2010 Messages postés 24 Date d'inscription vendredi 10 décembre 2010 Statut Membre Dernière intervention 19 juin 2011 - 26 avril 2011 à 14:19
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 - 27 avril 2011 à 08:42
Bonjour,
J'ai crée une fonction qui fait l'affichage des données dans un form et lorsque j'appelle cette fonction dans la vue principale je reçois le message erreur suivant
<<
An unhandled exception of type 'System.ArgumentOutOfRangeException' occurred in System.Windows.Forms.dll

Additional information: InvalidArgument=La valeur '2' n'est pas valide pour 'index'.>>

Aidez-moi à résoudre ce problème s'il vous plait?

11 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
26 avril 2011 à 14:24
Salut,

ton erreur est simple : tu essaies d'accéder au 3ème élément d'un tableau/indexer qui n'en comporte pas autant.
0
fl2010 Messages postés 24 Date d'inscription vendredi 10 décembre 2010 Statut Membre Dernière intervention 19 juin 2011
26 avril 2011 à 15:26
bonjour
je n'ai pas bien compris ce que vous voulez dire,
car mon tableau contient plus que 3 elements et ma fonction contient 3 arguments.
merci pour votre aide
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
26 avril 2011 à 15:29
Sans code je peux pas t'en dire plus, mais ton erreur est pourtant explicite. Fais suivre le code en question (celui de la fonction et celui de son appel), je pourrai sûrement préciser le truc.
0
fl2010 Messages postés 24 Date d'inscription vendredi 10 décembre 2010 Statut Membre Dernière intervention 19 juin 2011
26 avril 2011 à 18:02
bojour voila le code
345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697  
using System;
using
System.Collections.Generic; 
using
System.ComponentModel; 
using
System.Data; 
using
System.Drawing; 
using
System.Linq; 
using
System.Text; 
using
System.Windows.Forms; 
using
System.Collections; 
using
System.Data.SqlClient; 
namespace
projet 
{
public partial class propriete : Form 
{
parametres para = new parametres(); 
public propriete() 
{
InitializeComponent();
}
public void ListeCycle(string LabelEtuve, string DbCy, string FinCy) 
{
ArrayList propriety = new ArrayList(); 
ArrayList Quantity = new ArrayList(); 
try 
{
Program.connexion.Open(); 
string mySelectQuery2 = "SELECT Matricule,Team,Nbr_Lot,Name,Quantity FROM Operation,Lots Where Operation.Oven_Label='" + LabelEtuve + "' and Operation.Start_Date Operation.Start_Date='" + DbCy + "' and Operation.End_Date ='" + FinCy + "'and Operation.Num=Lots.Num "; 
Program.commande = new SqlCommand(mySelectQuery2, Program.connexion); 
SqlDataReader myReader2 = Program.commande.ExecuteReader(); 
while (myReader2.Read()) 
{
for (int j = 0; j < myReader2.FieldCount; j += 1) 
{
propriety.Add(myReader2[j].ToString());
}
Quantity.Add(propriety[3]);
Quantity.Add(propriety[4]);
 
}
 

voici la declaration de la fonction au niveau de la fenetre principale
private void proprietesToolStripMenuItem_Click(object sender, EventArgs e) 
{
propriete propriet = new propriete(); 
for (int i = 0; i < listView1.Items.Count-1; i++) 
{
if (listView1.Items[i].Selected) 
{
propriet.ListeCycle(listView1.Items[i].SubItems[1].Text,listView1.Items[i].SubItems[5].Text, listView1.Items[i].SubItems[6].Text);
propriet.ShowDialog(); 
}
}
}

merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_DrAsh Messages postés 4 Date d'inscription samedi 23 octobre 2010 Statut Membre Dernière intervention 27 avril 2011
26 avril 2011 à 18:20
dans quelle ligne s'arrête le débogueur ?
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
26 avril 2011 à 18:27
Re,

quelques petites remarques avant une question :
- propriété se dit "property" en anglais ("properties" au pluriel) ^^,
- après avoir parcouru ton DataReader, pense bien à le clore (myReader2.Close();),
- il y a une erreur dans ta requête, tu répètes 2x "Operation.Start_Date" dans ta clause where (erreur de retranscription ?)

et maintenant la question : sur quelle ligne as-tu l'erreur ? Car tu emploies plusieurs objets indexés, et mis à part les tites remarques plus haut, ton code semble bon.
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
26 avril 2011 à 18:32
Ah ! j'allais oublié : dans ton while read il faut penser à faire un propriety.Clear(), sinon tu vas insérer le Name et la Quantity du premier enregistrement autant de fois que tu as d'enregistrements.
0
pl4hs Messages postés 53 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 26 avril 2011
26 avril 2011 à 20:25
slt,

compile avec debogage, et dis nous ou est causer lexeception, parce que l'architecture de ton code est vraiment pas belle, il est illisible a mes yeux..au taf code coder comme sa, et c le boss qui vient me dire le reste..

Sinon on ne voit pas dans ton code a quel moment tu rempli ton array, il est déclarer masi je ne voi pas la ou te le rempli.?

Cordialement
0
pl4hs Messages postés 53 Date d'inscription dimanche 17 janvier 2010 Statut Membre Dernière intervention 26 avril 2011
26 avril 2011 à 20:58
PS : ton array : propriety.

Noublie pas que les index d'array commence a '0' et pas a 1..
0
fl2010 Messages postés 24 Date d'inscription vendredi 10 décembre 2010 Statut Membre Dernière intervention 19 juin 2011
26 avril 2011 à 23:35
bonjour,
le programme s'arrete a la ligne de l'appelle de la fonction :
propriet.ListeCycle(listView1.Items[i].SubItems[1].Text,listView1.Items[i].SubItems[5].Text, listView1.Items[i].SubItems[6].Text);
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
27 avril 2011 à 08:42
Ce n'est pas à l'intérieur de cette fonction ?
Car dans l'appel je vois pas vraiment où pourrait être l'erreur :
- tu vas chercher les subitems 1, 5 et 6 (y'a pas de 2),
- il y a des chances que tu accèdes à items[2], mais si l'erreur venait de là ça planterait sur ton if selected,
- l'erreur précise bien "n'est pas valide pour 'index'", or ta fonction ne comporte pas de param 'index', il s'agit donc bien d'un des tableaux.

As-tu tenter le debug pas-à-pas (entrant) pour trouver précisément où est l'erreur ? Histoire d'avoir un peu plus de détail que juste la ligne d'erreur.
0
Rejoignez-nous