我有一個DataGridView的表單,我想使用DataSet將XML文件中的數據加載到Grid中。我創建了一個數據集,將XML加載到DataSet,然後將數據集分配給電網的DataSource屬性:使用DataSource在DataGridView中顯示XML數據
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行,Grid創建了8行,但它們都是空白的。當我調試代碼時,我可以看到DataSet中的數據,因此它似乎正在將它正確加載到該點,而不是將其顯示在網格中。我使用的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的新手,我不知道如何在Grid填充時觸發什麼事件,如果這些事件中應該有代碼,等等。
乾杯, Ciaran。
嗨克里斯 - 我已經添加了列在設計時,他們似乎在運行時,只是他們是空的。在短時間內添加列是否更好?我甚至命名以匹配XML文件中的元素colums – 2009-11-06 11:43:19
好吧,我註釋掉線 dataGridViewStatement.AutoGenerateColumns = FALSE(不知道這是必要的嗎?); 和電網現在顯示8行與7空白列,然後7列從XML數據,所以我想這是現在的一半工作。這是否意味着我不應該在設計時定義這些列?有沒有辦法讓數據顯示在設計時定義的列中? – 2009-11-06 12:10:12
在我的情況下,我通過反射在運行時添加列,但是我有一個數據網格,可以根據加載的dll顯示不同的信息。 – ChrisF 2009-11-06 12:11:46