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

Messages postés
56
Date d'inscription
dimanche 1 août 2004
Dernière intervention
28 août 2008
- 6 mars 2008 à 20:19 - Dernière réponse :
Messages postés
56
Date d'inscription
dimanche 1 août 2004
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.
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
41
Date d'inscription
jeudi 12 janvier 2006
Dernière intervention
30 octobre 2008
- 7 mars 2008 à 10:14
3
Merci
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;

Merci Amelie_29 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de Amelie_29
Meilleure réponse
Messages postés
41
Date d'inscription
jeudi 12 janvier 2006
Dernière intervention
30 octobre 2008
- 7 mars 2008 à 16:27
3
Merci
Essaie peut-être ça :

DTGV.Datasource = ds;
DTGV.Datamember = "toto";

Merci Amelie_29 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de Amelie_29
Messages postés
56
Date d'inscription
dimanche 1 août 2004
Dernière intervention
28 août 2008
- 7 mars 2008 à 15:54
0
Merci
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.
Commenter la réponse de ericdu93
Messages postés
56
Date d'inscription
dimanche 1 août 2004
Dernière intervention
28 août 2008
- 7 mars 2008 à 15:58
0
Merci
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"
Commenter la réponse de ericdu93
Messages postés
41
Date d'inscription
jeudi 12 janvier 2006
Dernière intervention
30 octobre 2008
- 7 mars 2008 à 16:24
0
Merci
Récupères-tu bien les emails dans le dataset ?
Commenter la réponse de Amelie_29
Messages postés
56
Date d'inscription
dimanche 1 août 2004
Dernière intervention
28 août 2008
- 7 mars 2008 à 17:35
0
Merci
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.
Commenter la réponse de ericdu93

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.