Exception ArgumentException en C#

Fermé
OUROBANGNA Messages postés 69 Date d'inscription lundi 26 octobre 2009 Statut Membre Dernière intervention 17 mars 2014 - 16 mai 2012 à 14:57
OUROBANGNA Messages postés 69 Date d'inscription lundi 26 octobre 2009 Statut Membre Dernière intervention 17 mars 2014 - 23 mai 2012 à 13:49
Bonjour chers internautes

Je suis sur une application où je dois charger le contenu d'un fichier dans un datagriedview dgv.

Voici la code de la fonction que j'ai implémenté pour faire cette tache.
En réalité, ça me génère une exception ArgumentException qui dit que "la tableau en entrée est plus long que le nombre de colonnes dans la table.

Merci de m'aider à régler le problème. Bonne journée à vous et merci de votre disponibilité.

void parcourir_fichier_lui_meme(string Filename, char separator)
        {   
            StreamReader sr = new StreamReader(Filename);
            string line = "";

            while ((line = sr.ReadLine()) != null)
            {
                string[] vals= line.Split(separator);
                
            dgv.DataSource = vals;
              
             DataTable dta = new DataTable();


              for (int i = 0; i < vals.Count(); i++)
              {   
                  // Il s'agit de parcourir le fichier de base et d'ajouter au datagriedview les colonnes des champs du fichier
                  // ajouter au datagriedview les enregistrements

                  
                  dta.Rows.Add(new object[] { vals });
                 
                  dgv.DataSource = dta;

              }   
                
            }
        }


3 réponses

scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
16 mai 2012 à 15:30
Relis bien le message d'erreur, il te dit que la table que tu essayes de mettre dans dgv contient plus de colonnes que dgv.

Ajout donc le même nombre de colonnes à dgv qu'il y en a dans dta.

Sinon travaille directement sur le Datasource de dgv.
0
OUROBANGNA Messages postés 69 Date d'inscription lundi 26 octobre 2009 Statut Membre Dernière intervention 17 mars 2014 5
18 mai 2012 à 12:34
bonjour Scriptiz, j'ai fais un test avec le fichier suivant:

PRENOM; NOM; DATE_NAISSANCE
ALICE;BEJAUT; 03/06/1987
NICOLAS; HORIAT; 12/12/1980

En effet j'ai écris une 1ere fonction du meme genre sauf que celui là au lieu de la boucle While j'ai mis if pour pouvoir lire que la 1ere ligne et que je puisse créer les colonnes du datagridview. Au niveau du chargement des colonnes il n'y a pas de probleme. Mais lorque je remets la fonction en mettant le while pour pouvoir lire le fichier jusqu'à la fin, j'ai l'exception.

Ce que je veux faire, c'est lire le fichier, creer les Colonnes du datagridview avec la 1ere ligne du fichier, charger le datagridview avec les autres lignes du fichier....
Merci de m'aider.
0
OUROBANGNA Messages postés 69 Date d'inscription lundi 26 octobre 2009 Statut Membre Dernière intervention 17 mars 2014 5
21 mai 2012 à 15:32
Je n'arrive toujours pas à charger le contenu du fichier dans le datagridview...
Je suis bloqué. J'attends impatiemment toute aide de votre part!!!!!!!!! Merci bonne soirée tout en espérant avoir une solution dans un futur très proche.
0
OUROBANGNA Messages postés 69 Date d'inscription lundi 26 octobre 2009 Statut Membre Dernière intervention 17 mars 2014 5
23 mai 2012 à 13:49
J'ai pu résoudre le problème. En fait, il faut ajouter au DataTable les colonnes avant d'ajouter les lignes. Sinon on aura 0 colonnes ds le DataTable alors que vous voudriez dans doute ajouter dans doute un taleau d'au moins une colonne au meme DataTable.
0