如何在.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
可以理解,但是WriteXML将根级名称设置为DataSetName ......怪异的,呃? – 2009-09-14 19:33:37
好了,再次 - 我猜他们必须选择某种默认值,并且您给DataSet的名称似乎有意义。我同意 - 在ReadXml上有一个参数来表明你想使用根元素名称作为DataSet名称可能是有用的 - 它只是不存在(还没有?).... – 2009-09-14 19:42:30