C# – 将DataGridView保存到文件并加载

首先,我所拥有的是一个简单的Winforms应用程序,只有一个保存和加载按钮,以及一个用于保存数据的datagridview控件。 我要做的是将一些数据输入控件,点击保存按钮,它将所有数据保存到计算机本地的文件中,当我点击加载时,它加载文件并适当填充控件,保持所有行,列和数据与保存时相同。

虽然这对我来说听起来相当简单,但我似乎无法想出一种保存和加载数据的好方法。 我可以获得一些指示或示例来让自己开始吗?

谢谢。

将DataGridView绑定到DataTable,并使用DataTable ReadXml()WriteXml()方法读取数据并将其写入文件。

如果您有多个绑定到多个相关表的网格,则可以使用DataSet表示模式,并使用DataSet的ReadXml()WriteXml()方法来读取和写入整个模式。

有关DataTable.WriteXml()的MSDN页面上有一个示例,您可能会发现它有用。

我已经测试了一种将datagridview保存到文件的简单方法:

 //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()); } } } 

并将此类文件加载到datagridview:

 //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 

考虑到我假设datagridview控件具有固定列,在特定情况下,您应该添加一些代码以插入新列或创建新的gridview。