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.
你有声明:
dataGridViewStatement.AutoGenerateColumns = false;
Run Code Online (Sandbox Code Playgroud)
这意味着DataGridView将没有任何列.将其设置为true或插入一些代码以添加列.