c# - 使用 DataSource 在 DataGridView 中显示 XML 数据

标签 c# winforms datagridview

我有一个带有 DataGridView 的表单,我想使用 DataSet 将数据从 XML 文件加载到网格中。我创建一个 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";
}

但是数据不会显示在网格中。我的 XML 文件中有 8 行,网格创建了 8 行,但它们都是空白的。当我调试代码时,我可以看到数据集中的数据,因此它似乎已正确加载到该点,只是没有将其显示在网格中。我使用的 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>

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

干杯, 夏兰。

最佳答案

你已经得到了声明:

 dataGridViewStatement.AutoGenerateColumns = false;

这意味着 DataGridView 不会有任何列。将其设置为 true 或插入一些代码来添加列。

关于c# - 使用 DataSource 在 DataGridView 中显示 XML 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1686944/

相关文章:

c# - 微软同步框架

c# - Unity3d检测平面上的点击

c# - 如何创建这样的任务面板?

vb.net - 从 DatagridView 创建 Tiff 位图文件

c# - 如何确定用户单击了 DataGridView 而不是 Cell

c# - 什么事件捕捉到 DataGridViewCell 中组合框中值的变化?

c# - 尝试解析日期时出错

c# - 拆分字符串并排除最后一次拆分

C# 在 gecko 浏览器中自动填充输入框

c# - 如何在 c# 中对 PictureBox.Image 进行线程安全调用,目前给出 3 个错误之一