如何在.NET中使用ReadXML()从XML文件中读取DataSetName?

如何在.NET中使用ReadXML()从XML文件中读取DataSetName?

问题描述:

我已经使用.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 

ReadXml没有设计或任务设置您的DataSet名称 - 您必须自己做。

当然 - 在你的情况下,你想把它设置为根级名称 - 但这可能不是每个人都想要的。其他人可能想要将其设置为文件名 - 甚至完全不同。

因此,作为一种折中,ReadXml函数根本不会做任何事情 - 它不会以任何方式,形状或形式触摸您的DataSet名称。你没有错误 - 这就是它的方式。

Marc

+0

可以理解,但是WriteXML将根级名称设置为DataSetName ......怪异的,呃? – 2009-09-14 19:33:37

+0

好了,再次 - 我猜他们必须选择某种默认值,并且您给DataSet的名称似乎有意义。我同意 - 在ReadXml上有一个参数来表明你想使用根元素名称作为DataSet名称可能是有用的 - 它只是不存在(还没有?).... – 2009-09-14 19:42:30