C # – Sauvegarde d’un DataGridView dans un fichier et chargement

Pour commencer, ce que j’ai est une application Winforms simple, avec juste un bouton de sauvegarde et de chargement, et avec un contrôle datagridview pour stocker des données. Ce que je cherche à faire est de saisir des données dans le contrôle, d’appuyer sur le bouton d’enregistrement, puis de sauvegarder toutes les données dans un fichier situé localement sur l’ordinateur. Lorsque je clique sur load, le fichier est chargé et le contrôle est correctement rempli. toutes les lignes, colonnes et données sont identiques à celles enregistrées.

Bien que cela semble assez simple pour moi, je ne peux pas sembler être un bon moyen de sauvegarder et de charger les données. Puis-je avoir quelques conseils ou exemples pour bien commencer?

Je vous remercie.

Liez le DataGridView à un DataTable et utilisez les ReadXml() DataTable ReadXml() et WriteXml() pour lire et écrire les données dans un fichier.

Si plusieurs grids sont liées à plusieurs tables associées, vous pouvez représenter le schéma avec un DataSet et utiliser les ReadXml() et WriteXml() de DataSet pour lire et écrire le schéma complet.

Il existe un exemple sur la page MSDN pour DataTable.WriteXml () qui pourrait vous être utile.

J’ai testé un moyen simple de sauvegarder datagridview dans un fichier:

 //DataGridView dgv=... ssortingng file= "c:\\mygrid.bin"; using (BinaryWriter bw = new BinaryWriter(File.Open(file, FileMode.Create))) { bw.Write(dgv.Columns.Count); bw.Write(dgv.Rows.Count); foreach (DataGridViewRow dgvR in dgv.Rows) { for (int j = 0; j < dgv.Columns.Count; ++j) { object val=dgvR.Cells[j].Value; if (val == null) { bw.Write(false); bw.Write(false); } else { bw.Write(true); bw.Write(val.ToString()); } } } 

et pour charger un tel fichier dans une datagridview:

 //DataGridView dgv = ... dgv.Rows.Clear(); ssortingng file="c:\\mygrid.bin"; using (BinaryReader bw = new BinaryReader(File.Open(file, FileMode.Open))) { int n=bw.ReadInt32(); int m=bw.ReadInt32(); for(int i=0;i 

Pensez que j'ai supposé que le contrôle datagridview avait des colonnes fixes. Dans votre situation spécifique, vous devez append des codes pour insérer de nouvelles colonnes ou créer une nouvelle vue en grid.