2015-06-02 89 views
0

我已經創建從Visual Studio中的界面構建一個DataGridView。 DataGridView有三列,其中一列包含複選框。 當應用程序啓動時的datagridview的應該是空的(除了報頭)。這就是爲什麼DataGridView目前沒有DataSource。我試圖將其導出到XML文件,以便下次打開該應用程序時可以導入該文件。導入/導出的DataGridView與格式C#

我試過許多方法來導出和導入我的DataGridView但他們沒有工作得很好。有沒有適當的方式來導入和導出datagridviews保持格式?

保存在DataGridView爲另一種格式比XML還不錯,但隨着應用程序必須在多臺計算機服務器,將所有創建多個文件運行,文件大小要小。

+0

JSON是小的,看看這個解決方案http://stackoverflow.com/questions/17398019/how -to-轉換,數據表到JSON-在-C-尖銳 –

回答

2

您可以將網格綁定到一個DataTable,並使用datatable.ReadXml("filename.xml")datatable.WriteXml("filename.xml")

+0

感謝。我已經嘗試過這一點,但將網格綁定到數據表時會在單元格中使用複選框時導致問題。 – Berendschot

+0

+1,它工作得很好。 @ Maarten1909我在回答中提供了一個例子,它是如何工作的。如果這仍然沒有幫助,你遇到了什麼問題? – OhBeWise

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一個XML文件,其中.exe文件位於:

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