我有一个带有 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/