[C#] Comment ecrire un xml a partir d'un datagrid?

marcel45623 Messages postés 2 Date d'inscription vendredi 12 mai 2006 Statut Membre Dernière intervention 12 décembre 2006 - 12 déc. 2006 à 11:34
Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010 - 12 déc. 2006 à 17:10
Bonjour à tous,

Je programme avec visual studio 2003 en c#. Au départ, j'ai un fichier XML contenant des données. Je dois inserer ces données dans une datagrid. Pour cela:


dt = new DataSet();
dt.ReadXml("XMLFile1.xml");
dataGrid1.DataSource = dt.Tables[1];

Júsque là ca va.

Mon probleme est le suivant:

Lorsque je modifie les données dans la datagrid, j'aimerais les enregistrer dans le fichier XML pour les retrouver lors de la prochaine execution de mon programme. Pour cela j'ai essayé:


FileStream fichier = new FileStream("XMLFile1.xml", FileMode.Create);
XmlTextWriter xmltext = new XmlTextWriter(fichier, Encoding.Unicode);
dt.WriteXml(xmltext);
xmltext.Close();

L'enregistrement ne s'effetue pas.

Sinon j'ai fait un autre essai:

Pour la lecture:

dt = new DataSet();
dt.ReadXml("XMLFile1.xml",XmlReadMode.ReadSchema);
dataGrid1.DataSource = dt.Tables[1];

Mais la datagrid ne se rempli plus, et j'ai un message d'erreur disant qu'il ne trouve pas la Table.

pour l'ecriture:

System.IO.StreamWriter xmlSW = new StreamWriter ("XMLFile1.xml");

dt.WriteXml("XMLFile1.xml",XmlWriteMode.WriteSchema);
xmlSW.Close();

Quelle méthode me conseillé vous? Comment faire pour que le programme tourne?

Merci d'avance.











 

juju

2 réponses

marcel45623 Messages postés 2 Date d'inscription vendredi 12 mai 2006 Statut Membre Dernière intervention 12 décembre 2006
12 déc. 2006 à 12:17
En fait j'ai trouvait la solution:

Pour lire mon Xml j'utilise le code suivant:

dt = new DataSet();
dt.ReadXml("XMLFile1.xml");
dataGrid1.DataSource = dt.Tables[1];

Avant d'ecrire dans le Xml, je créé un autre dataset pour pouvoir mettre le premier a jour.

DataSet myChangedDataset = dt.GetChanges();
dt.AcceptChanges();

et Enfin pour ecrire ds le Xml

FileStream fichier = new FileStream("XMLFile1.xml", FileMode.Create);
XmlTextWriter xmltext = new XmlTextWriter(fichier, Encoding.Unicode);
dt.WriteXml(xmltext);
xmltext.Close();

Je pense que cela pourra reservir a quelqu'un.

Salut et merci.

<!-- / message -->



juju
0
Miltiades Messages postés 233 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 25 octobre 2010
12 déc. 2006 à 17:10
t'aimes te compliquer la vie toi...

t'as essayé pour sauver tes données de faire:


dt.writexml("XMLFile1.xml");

???
au lieu de te compliquer la vie avec tes flux?

Nul ne devient grand par la guerre...
0
Rejoignez-nous