Saltar al contenido

C #: guardar un DataGridView en un archivo y cargarlo

Solución:

Enlazar DataGridView a DataTable y usar DataTable
ReadXml() y WriteXml() métodos para leer y escribir los datos en un archivo.

Si alguna vez tiene varias cuadrículas enlazadas a varias tablas relacionadas, puede representar el esquema con un DataSet y usar el ReadXml() y WriteXml() métodos de DataSet para leer y escribir el esquema completo.

Hay un ejemplo en la página de MSDN para DataTable.WriteXml () que puede resultarle útil.

He probado una forma sencilla de guardar datagridview en un archivo:

//DataGridView dgv=...
string 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());
             }
         }
    }

y para cargar dicho archivo en una vista de cuadrícula de datos:

//DataGridView dgv = ...
dgv.Rows.Clear();
string 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<m;++i)
   {
         dgv.Rows.Add();
         for (int j = 0; j < n; ++j)
         {
               if (bw.ReadBoolean())
               {                                        
                     dgv.Rows[i].Cells[j].Value = bw.ReadString();                                        
               }
               else bw.ReadBoolean();
          }
     }
} 

Considere que asumí que el control de vista de cuadrícula de datos tiene columnas fijas, en su situación específica, debe agregar algunos códigos para insertar nuevas columnas o crear una nueva vista de cuadrícula.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *