2009-09-14 56 views
2

我已經使用.WriteXML(FileName)將DataSet寫入XML文件,並且數據集的DataSetName屬性是文件中的頂級標記。但是,當我嘗試使用.ReadXML(FileName)將文件讀入另一個DataSet時,DataSetName不會更改爲頂級標記的值。我做錯了什麼,或者是不應該設置DataSetName的ReadXML?只是令我奇怪的是,它寫出來,但不會讀它如何在.NET中使用ReadXML()從XML文件中讀取DataSetName?

這是我寫的代碼,XML文件,並閱讀代碼:

寫作:

dsNewReport.DataSetName = "Rejected" 
dsNewReport.WriteXml(My.Application.Info.DirectoryPath & "/Reports/Incomplete/" & fileName) 

的生成的XML:

<?xml version="1.0" standalone="yes"?> 
<Rejected> 
    <SearchData> 
    //SNIP 
    </SearchData> 
</Rejected> 

閱讀:

dsSearchReport.ReadXml(My.Application.Info.DirectoryPath & "/Reports/Incomplete/Search_" & Search_SEQ_GUID & ".xml") 
If dsSearchReport.DataSetName = "Rejected" Then 
    return True 
    'DataSetName = dsSearchReport after the read  
End IF 

回答

2

ReadXml沒有設計或任務設置您的DataSet名稱 - 您必須自己做。

當然 - 在你的情況下,你想把它設置爲根級名稱 - 但這可能不是每個人都想要的。其他人可能想要將其設置爲文件名 - 甚至完全不同。

因此,作爲一種折中,ReadXml函數根本不會做任何事情 - 它不會以任何方式,形狀或形式觸摸您的DataSet名稱。你沒有錯誤 - 這就是它的方式。

Marc

+0

可以理解,但是WriteXML將根級名稱設置爲DataSetName ......怪異的,呃? – 2009-09-14 19:33:37

+0

好了,再次 - 我猜他們必須選擇某種默認值,並且您給DataSet的名稱似乎有意義。我同意 - 在ReadXml上有一個參數來表明你想使用根元素名稱作爲DataSet名稱可能是有用的 - 它只是不存在(還沒有?).... – 2009-09-14 19:42:30