Remplir les ligne d'une data grid

Signaler
Messages postés
54
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
29 août 2006
-
Messages postés
6
Date d'inscription
jeudi 16 novembre 2006
Statut
Membre
Dernière intervention
1 octobre 2008
-
Salut tout la monde
je souhaiterai remplir les ligne d'une dataGridView a partir du resultat d'une requete.Ma requet me renvoie plusieurs ligne je voudrai recupérer ces linge et les inserer dans la 1ere colonne de mon dataGridView.


Merci d'avance de vos reponses

14 réponses

Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
18
le plus simple est de récupérer le résultat de ta requete dans un dataset, et d'affecter ce dataset a la propriété datasource de ton datagridview.
Messages postés
54
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
29 août 2006

salut,
merci pour la proposition.c'est vrai qu'avec un dataset ça sera bcp plus simple.J'aimerai bien savoir comment faire pour recuperer le resultat de ma requete dans un dataSet.
Sinon moi le resultat de ma requete est dans un DataReader.J'arrive à le parcourir mais je ne sais pas comment faire pour ajouter les lignes de mon dataGridView au fur et a mesure que mon datarreader est parcouru.
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
Pour remplir un DataGridView... tu peux t'y prendre de plein de manières différente...
mais toi ce que tu veux c'est le lier à des données. donc soit tu construits un DataSet que tu remplis (avec une SqlDataSource) soit tu utilises une collection d'objet que tu auras créé.

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
54
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
29 août 2006

salut
encore merci pour vos reponses
 peux etre que je me suis mal exprimée car je ne comprned toujours pas pourquoi mettre le resultat de ma requete dans un DataSet.
ci-dessous et mon bout de code qui ma permet de parcourir le resultat de ma requete et d'afficher les element de ma 1ere colonne de resultat.
using (
DbDataReader rdr = macommande.ExecuteReader())


{



while
(rdr.Read())



{
//affichage de la premiere colonne








Console
.WriteLine(rdr.GetString(0));


}


moi je voudrai recupérer le rdr.GetString(0) et le mettre dans les ligne de ma dataGrid.





merci pour vos proposition

Maité
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
parce que le DataGridView est fait pour travailler avec un DataSet !

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
54
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
29 août 2006

ah d'accord, je ne savais pas.Est ce que stp tu pourrai me dire comment faite pour mettre le resultat de ma requete dans un DataSet?

Maité
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
le plus simple (vu qu'apparement tu es en .net 2.0), c'est de créer un SqlDataSource (où du moins celui qui correspond à ta base de données).
Cet objet SqlDataSource va te permettre de "brancher" ta DataGridView sur ton DataSet, et par l'intermédiaire du DataTableAdapter qu'il va te créer, remplir ton DataSet.

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
54
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
29 août 2006

mon probleme c'est que je ne sais pas comment faire pour traduire le resultat de ma requete sql en dataSet.En plus c'est une requete avec 3 jointure et une clause Where.Je sais pas comment faire pour que le resutat soit un DataSet.
est ce que tu aurai un exemple de code?
encore merci pour vos reponses

Maité
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
bon ok... on va faire simple... sans DataSet...

donc... il faut que tu suives tous les étapes sans en sauter une seule !

1. Tu crées une classe représentant une ligne de ta requête...  (par exemple MaLigne)
2. Tu crées une collection qui va te permettre de stocker les résultats de ta requête,
    --> par exemple : List<MaLigne> resultat;
3. Pendant le parcours de tes résultat (DataReader) tu remplis la collection que tu viens de créer
4. Tu donnes à ton DataGridView la collection que tu viens de créer...
    --> ex : monDataGridView.DataSource = resultat;

voila... tes résultats s'affiche dans ton DataGridView.

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
54
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
29 août 2006

je ne sais comment m'y prendre pour la 1 ere étape.je ne sais pas comment faire pour creer la classe qui represente ma requete.
ma requete est un string et je l'excute en utilisant un sqlCommand.
Qu'est qu'il faut que je mette dans ma classe?

Maité
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
ta requête retourne des lignes, elles-même composées de champs...
à partir de là, tu peux créer une classe reflétant ces lignes...

Ex :
Si mes lignes sont :
NomUser, Varchar(50)
PrenomUser, Varchar(50)
AgeUser, int

je peux construire une classe comme ceci :

public class User {
    public string Nom {
       get {...}
       set {...}
    }

    public string Prenom { ... }

    public int Age { ... }
}

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
54
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
29 août 2006

ok je vois ,


merci je vvais le faire et vraiment merci

Maité
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
de rien :)

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
6
Date d'inscription
jeudi 16 novembre 2006
Statut
Membre
Dernière intervention
1 octobre 2008

Bonjour,

Je suis dans le même cas que maïté, j'arrive à remplir ma collection d'objet à partir de ma base de donnée, cette collection je l'ai déclaré en static à l'intérieur d'une classe static pour pouvoir l'utiliser dans tout mon projet.
Ma collection contient donc bien les objet que je souhaite afficher dans mon datagrid, mais datagrid.datasource = maListe; ne rempli pas mon datagrid :/ et je ne vois pas ou est le souci.

Merci d'avance de vos réponses.