使用DataSource在DataGridView中显示XML数据

Cia*_*uen 2 c# datagridview winforms

我有一个带有DataGridView的表单,我想使用DataSet将XML文件中的数据加载到Grid中.我创建一个DataSet,将XML加载到DataSet中,然后将DataSet分配给Grid的DataSource属性:

private void formAccountHistory_Load(object sender, EventArgs e)
{
    // Load the DataSet that represents the offline version of the database.
    AccountHistoryDS = new DataSet("TicketAccountHistory");

    AccountHistoryDS.ReadXmlSchema("TicketsAccountHistory.xsd");
    AccountHistoryDS.ReadXml("TicketsAccountHistory.xml", XmlReadMode.Auto);
    AccountHistoryDS.Locale = System.Globalization.CultureInfo.CurrentUICulture;

    dataGridViewStatement.AutoGenerateColumns = false;
    dataGridViewStatement.DataSource = AccountHistoryDS;
    dataGridViewStatement.DataMember = "Line";
}
Run Code Online (Sandbox Code Playgroud)

但是,数据不会显示在网格中.我在XML文件中有8行,而Grid创建了8行,但它们都是空白的.当我调试代码时,我可以看到DataSet中的数据,所以它似乎正确加载到那一点,只是没有在Grid中显示它.我使用的XML文件如下所示 - 它格式正确,并根据其架构进行验证:

<?xml version="1.0" standalone="yes"?>
<TicketsAccountHistory>
    <Line>
        <colID>03/09</colID>
        <colStartEnd>14/01/2009-20/01/2009</colStartEnd>
        <colDate>14/01/2009</colDate>
        <colType>Period 03/09 - opening balance</colType>
        <colDR></colDR>
        <colCR></colCR>
        <colBalance>0.00</colBalance>
    </Line>
    <Line>
        <colID>03/09</colID>
        <colStartEnd>14/01/2009-20/01/2009</colStartEnd>
        <colDate>20/01/2009</colDate>
        <colType>Sales Invoice (Ref: MRO-S-03/09)</colType>
        <colDR>1000</colDR>
        <colCR></colCR>
        <colBalance>1000.00</colBalance>
    </Line>
    <Line>
        <colID>03/09</colID>
        <colStartEnd>14/01/2009-20/01/2009</colStartEnd>
        <colDate>20/01/2009</colDate>
        <colType>Commission Invoice (Ref: MRO-C-03/09)</colType>
        <colDR></colDR>
        <colCR>100.00</colCR>
        <colBalance>900.00</colBalance>
    </Line>
    <!-- 5 more rows similar to this -->
</TicketsAccountHistory>
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我可能做错了什么?我是.NET 3.5和DataGridView的新手,我不知道在填充网格时如何触发什么事件,如果在任何这些事件中都应该有代码等等.任何帮助表示赞赏.

干杯,Ciaran.

Chr*_*isF 5

你有声明:

 dataGridViewStatement.AutoGenerateColumns = false;
Run Code Online (Sandbox Code Playgroud)

这意味着DataGridView将没有任何列.将其设置为true或插入一些代码以添加列.