Datagrid et parcours du tableau

[Résolu]
Signaler
Messages postés
72
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
22 mai 2009
-
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
-
Bonjour.
J aurais besoin d'un peu d aide pour mon application.
Je dispose d'un datagrid contenant un tableau et 3 colonnes :
- 2 colonnes de type texte
- 1 colonne de type checkbox

Je voudrais parcourir mon tableau, et ajouter seulement les lignes ou la case de la colonne 3 est cochée.
Quand j'ai toutes les lignes avec la colonne 3 de cochée, je les affiche dans un 2e datagrid (meme nom des champs ...) de ma form2.

Je pense qu'il faudrais parcourir mon tableau, verifier si la colonne 3 est sur "true" et ensuite l'ajouter a un dataset, ou simplement enregistrer en fichier xml et l ouvrir (ca je sais faire).
Bonne methode ?
Seulement je ne sais pas faire :)

ps : je debute en c# et surtout en winforms (j'avais plutot l'habitude de coder en mode console)

merci

7 réponses

Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
65
Hello,

Essaie ceci :


DataRow[] myRows = myDataSet.Tables["Customers"].Select("Vrai = True");

Amicalement, SharpMao
Messages postés
72
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
22 mai 2009

j'ai testé cette methode, mais ca ne marche pas :

int nombre = myDataSet.Tables["Customers"].Columns["Vrai"].Expression.CompareTo("true");

Custumers c est le nome de ma table,
Vrai : la colonne ou je peu cocher.

Il ne me trouve jamais rien. De plus je ne parcours pas le tableau.
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
65
Tu peux aussi utiliser les DataView :


Dataview dvnew DataView(ds.Tables[0],"Vrai True");

Ensuite, si tu veux afficher les données, tu utilise dv comme DataSource.

Amicalement, SharpMao
Messages postés
72
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
22 mai 2009

Merci.
Ta premiere reponse semble marcher. Mais je ne sais pas comment verifier les resultats.
Si j affiche comme ca : richTextBox1.Text =myRows.ToString();
ca me retourne des trucs bizars: " System.Data.DataRow[]"

Ta deuxieme reponse na pas la bonne syntaxe.
je suppose que ton ds represente mon Dataset, ce qui nous donne :

DataView dv=
new DataView(
myDataSet.Tables[0],"Vrai = True")
;

"Impossible de convertir un string en bool"

merci :)
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
65
Hello,

Oui, la syntaxe n'était pas correcte, j'ai fait du copier coller depuis mon test.

la syntaxe correcte doit être
DataView dv new DataView(myDataSet.Tables["Customers"],"Vrai True");

Amicalement, SharpMao
Messages postés
72
Date d'inscription
mercredi 5 janvier 2005
Statut
Membre
Dernière intervention
22 mai 2009

il y a toujours une erreur dans la syntaxe,
mais j ai cherché et j ai trouvé ca :DataView dv new DataView(myDataSet.Tables["Customers"],"Vrai True", "Vrai", DataViewRowState.CurrentRows);
(aide msdn)
ne ne sais pas trop a quoi correspond le 3e parametre, jvais regarder.

Maintenant que j ai mon dv rempli, je l'affiche comment ?

merci
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
65
Si ton DataGrid s'appel dg :

dg.DataSource = dv;

Et le tour est joué.

Amicalement, SharpMao

P.S. Bonne et heureuse année.