Remplir un dataGridView a partir d'un fichier XML

Signaler
Messages postés
43
Date d'inscription
mercredi 18 janvier 2006
Statut
Membre
Dernière intervention
5 août 2010
-
Messages postés
17
Date d'inscription
jeudi 30 août 2007
Statut
Membre
Dernière intervention
19 août 2009
-
Bonjour,

Je cherche à remplir une DatagridView à partir d'un fichier XML. Le problème est que je ne sais pas comment representer le contenu du tableau dans mon fichier Xml, je ne sais pas non plus comment remplir rapidement ma datagridView sans avoir à effectué plusieurs itérations sur mon fichier XML.
J'espere avoir été assez clair. Je vous remercie d'avance...

5 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
Salut,

Est-ce que ton DatagridView est rempli a partir d'un DataSet ?
Si oui, dans ce cas il te suffit d'utiliser la méthode WriteXml de ce dernier.

Mx
MVP C# 
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
Mince, j'ailu la question trop vite et a moitié

Donc, en fait il suffit d'utiliser la méthode inverse :
Tu charges ton fichier XML dans un DataSet, via la méthode ReadXmlPuis tu affectes ce dataset à la propriété DataSource de ton DatagridView

Mx
MVP C# 
Messages postés
43
Date d'inscription
mercredi 18 janvier 2006
Statut
Membre
Dernière intervention
5 août 2010

C'est ce que j'avais essayé mais ensuite je n'arrive pas a affiché ce que je veux ...
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
50
C'est à dire ?

Pour faire simple :

<hr />DataSet ds =
new
DataSet();
ds.ReadXml(
"tonFichier.xml");

this.dataGridView.DataSource = ds.Tables[0];
<hr />

Mx
MVP C# 
Messages postés
17
Date d'inscription
jeudi 30 août 2007
Statut
Membre
Dernière intervention
19 août 2009

Bonjour je ne sais pas si j'ai bien cmpris ta question mais bon je vais essayer et si c pas ca dit le moi.
J'ai declarer un objet de type dcument xml.
J'ai declarer un lecteur de noeud.
et puis mon dataset (si tu le met dans le datset ce tu l'as dis)
Je passe comme argument au dataset le lecteur de noeud.
je genere automatiquement mes colomnes 
puis je joins la propriete datagrid.source a mon dataset.
ainsi que l'element sous la racine a la propriete membre du datagrid.


<hr />

Schematisons tt ca.
Vici mon fichier xml:
+
   -<salarie>
         <nom>
         
    </salarie>
   -<salarie>
         ...  
         ...   
    </salaries>

<hr />

file = "Employes.xml";

xmlfl = new XmlDocument();
xmlfl.Load(this.file);
dataset1 = new DataSet();
lcteurXml = new XmlNodeReader(xmlfl);
dataset1.ReadXml(lcteurXml);
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = dataset1;
dataGridView1.DataMember = "Salarie";

<hr />
Maintenant si tu peux trouver comment avir l'indice de la ligne ce sera super cool car j bute la dessus. (je voudrais par exemple modifier ou supprimer un enregistrement mais selon l'indice du DataGridView.
Merci d'avance de ton idee ou pas !!et je pense avoir ete d'une aide.