Choix des colonnes à ajouter dans datagridview à partir d'un dataset

Résolu
ericdu93 Messages postés 56 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 28 août 2008 - 6 mars 2008 à 20:19
ericdu93 Messages postés 56 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 28 août 2008 - 7 mars 2008 à 17:35
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

Amelie_29 Messages postés 41 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 30 octobre 2008 1
7 mars 2008 à 10:14
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;
3
Amelie_29 Messages postés 41 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 30 octobre 2008 1
7 mars 2008 à 16:27
Essaie peut-être ça :

DTGV.Datasource = ds;
DTGV.Datamember = "toto";
3
ericdu93 Messages postés 56 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 28 août 2008 1
7 mars 2008 à 15:54
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.
0
ericdu93 Messages postés 56 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 28 août 2008 1
7 mars 2008 à 15:58
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"
0

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

Posez votre question
Amelie_29 Messages postés 41 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 30 octobre 2008 1
7 mars 2008 à 16:24
Récupères-tu bien les emails dans le dataset ?
0
ericdu93 Messages postés 56 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 28 août 2008 1
7 mars 2008 à 17:35
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.
0
Rejoignez-nous