导入/导出格式为C#

时间:2015-06-02 09:03:14

标签: c# winforms datagridview import export

我在Visual Studio的界面构建器中创建了一个DataGridView。 DataGridView有三列,其中一列包含复选框。 当应用程序启动时,datagridview应为空(标题除外)。这就是DataGridView此时没有DataSource的原因。我正在尝试将其导出到XML文件,以便下次打开应用程序时导入此文件。

我已经尝试了很多方法来导出和导入我的DataGridView,但它们都没有正常工作。有没有一种正确的方法来导入和导出datagridviews并保持格式?

将DataGridView保存为XML以外的其他格式也没问题,但由于应用程序必须在多台计算机上运行,​​这些计算机都将在服务器上创建许多文件,因此文件大小应该很小。

2 个答案:

答案 0 :(得分:2)

您可以将网格绑定到数据表,然后使用datatable.ReadXml("filename.xml")datatable.WriteXml("filename.xml")

答案 1 :(得分:1)

正如rlee所指出的,ReadXmlWriteXml应该有效。我放在一起的最基本的原始示例与单元格中的复选框一起工作得很好。

public partial class Form1 : Form
{
  private DataTable table;

  public Form1()
  {
    this.InitializeComponent();

    this.table = new DataTable("Table");
    DataColumn col1 = new DataColumn("Check", typeof(bool));
    DataColumn col2 = new DataColumn("Text", typeof(string));
    this.table.Columns.Add(col1);
    this.table.Columns.Add(col2);

    this.table.ReadXml("test.xml");
    this.dataGridView1.DataSource = this.table;
  }

  private void Form1_FormClosing(object sender, FormClosingEventArgs e)
  {
    this.table.WriteXml("test.xml");
  }
}

然后保存test.xml文件所在的名为.exe的xml文件:

<?xml version="1.0" standalone="yes"?>
<DocumentElement>
  <Table>
    <Check>true</Check>
    <Text>Row 0</Text>
  </Table>
  <Table>
    <Check>false</Check>
    <Text>Row 1</Text>
  </Table>
</DocumentElement>