Choix des colonnes à ajouter dans datagridview à partir d'un dataset [Résolu]

Signaler
Messages postés
56
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
28 août 2008
-
Messages postés
56
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
28 août 2008
-
Bonjour,

je récupère les données d'un fichier excel à l'aide d'ado.net et que je stocke dans une table de mon dataset qu'on appelle "toto". J'aimerai afficher dans un datagridview seulement certaines colonnes de ma table " toto". Voilà ce que j'ai essayé de faire:

...
s = new DataSet();
ThisCommand.Fill(ds, "toto");
dataGridView1.Columns.Add(ds.Tables["toto"].Columns["Email"]);
dataGridView1.Columns.Add(ds.Tables["toto"].Columns["Civilité"]);

et j'obtiens l'erreur:
Erreur    1    La méthode surchargée correspondant le mieux à 'System.Windows.Forms.DataGridViewColumnCollection.Add(System.Windows.Forms.DataGridViewColumn)' possède des arguments non valides   

Bien sûre si je fais:
dataGridView1.DataSource = ds.Tables["toto"];
ca marche, pour vous montrer qu'il n'y a pas de souci jusqu'à la création du dataset.

Donc pouvez vous me donner un coup de main svp.
Merci d'avance.

6 réponses

Messages postés
41
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
30 octobre 2008
1
Tu peux créer les colonnes de ton datagridview de cette façon :

DataGridViewTextBoxColumn

DTGV_Id_Colonne =
new
DataGridViewTextBoxColumn();
DTGV_Id_Colonne.DataPropertyName "CHAMP_DATASET";  // Lie la colonne du dataset à la colonne du datagridviewDTGV_Id_Colonne.HeaderText

"Nom_En_Tête_Colonne";DTGV_Id_Colonne.Name =

"Nom_Colonne";DTGV.Columns.Add(DTGV_Id_Colonne);

DTGV.AutoGenerateColumns =

false;

Ensuite tu bindes ton datagridview à ton dataset.
DTGV.datasource = dataset;
Messages postés
41
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
30 octobre 2008
1
Essaie peut-être ça :

DTGV.Datasource = ds;
DTGV.Datamember = "toto";
Messages postés
56
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
28 août 2008
1
Bonjour Amelie_29,

J'ai fais comme tu as dit:

                ds= new DataSet();
                ThisCommand.Fill(ds, "toto");
                DataGridViewTextBoxColumn DTGV_Id_Colonne = new DataGridViewTextBoxColumn();
                DTGV_Id_Colonne.DataPropertyName = "Email";  // Lie la colonne du dataset à la colonne du datagridview
                DTGV_Id_Colonne.HeaderText ="Email";
                DTGV_Id_Colonne.Name ="Email";
                dataGridView1.Columns.Add(DTGV_Id_Colonne);
                dataGridView1.AutoGenerateColumns = false;
                dataGridView1.DataSource = ds["toto"];

mais en affichant mon datagrid, j'ai qu'une colonne avec comme headerName "Email" sans toutes les enregistrements en dessous.

Aurais-tu une solution ?
Merci d'avance.
Messages postés
56
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
28 août 2008
1
Oops, j'ai fait une faute à la dernière instruction en oublier le "Tables", ce qui donne maintenant
dataGridView1.DataSource = ds.Tables["toto"];

Cette fois-ci, il apparaît que des cases blanches en dessous de ma colonne "Email"
Messages postés
41
Date d'inscription
jeudi 12 janvier 2006
Statut
Membre
Dernière intervention
30 octobre 2008
1
Récupères-tu bien les emails dans le dataset ?
Messages postés
56
Date d'inscription
dimanche 1 août 2004
Statut
Membre
Dernière intervention
28 août 2008
1
Merci, en testant ton dernier code, je me suis rendu compte que mon champs s'appellait "E-mail" avec un tiret et non "Email". Je mérite d'être fouetté je sais.

merci en tout cas.