【问题标题】:How do I read in a DataSetName from an XML File using ReadXML() in .Net?如何在 .Net 中使用 ReadXML() 从 XML 文件中读取 DataSetName?
【发布时间】:2009-09-14 19:17:47
【问题描述】:

我已使用 .WriteXML(FileName) 将 DataSet 写入 XML 文件,数据集的 DataSetName 属性是文件中的顶级标记。但是,当我尝试使用 .ReadXML(FileName) 将文件读入不同的 DataSet 时,DataSetName 不会更改为顶级标记的值。我做错了什么,还是 ReadXML 不应该设置 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

【问题讨论】:

    标签: .net xml-serialization dataset


    【解决方案1】:

    ReadXml 的设计或任务不是设置您的 DataSet 名称 - 您必须自己执行此操作。

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

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

    马克

    【讨论】:

    • 可以理解,但是 WriteXML 将根级别名称设置为 DataSetName...很奇怪,嗯?
    • 好吧,再一次 - 我猜他们必须选择某种默认值,而您给 DataSet 起的名称似乎是有道理的。我同意 - 在 ReadXml 上有一个参数来指示您想使用根元素名称作为 DataSet 名称可能很有用 - 它只是不存在(还没有?)....
    猜你喜欢
    • 2011-10-01
    • 2012-11-10
    • 2011-03-07
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多