【问题标题】:Creating a DataSet from XML that has 1 table and 0 rows从具有 1 个表和 0 行的 XML 创建一个数据集
【发布时间】:2013-04-23 15:44:13
【问题描述】:

我目前正在使用这个从 XML 流创建DataSet

DataSet dataSet = new DataSet();
dataSet.ReadXml(xml);

我试过了,

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
  <Table>
  </Table>
</NewDataSet>

这会创建一个DataSet,其中Tables[0] 是一个名为“NewDataSet”的表,其中1 列名为“Table”,1 行“Table”的值为“”。然后我尝试了这个,

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
</NewDataSet>

但这会创建一个没有表的 DataSet。如何创建一个包含 1 个名为“Table”且包含 1 列但现在为行的表的 DataSet?

【问题讨论】:

    标签: c# xml dataset


    【解决方案1】:

    你不能。 ReadXml 和 WriteXml 只读取/写入数据,而不是整个数据集/数据表/列/等模式的结构。

    我的建议是首先使用函数ReadXmlSchema 从单独的架构文件中读取架构,然后再读取数据文件。

    您的架构可能如下所示:

    <?xml version="1.0" standalone="yes"?>
    <xs:schema id="MyDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
      <xs:element name="MyDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
        <xs:complexType>
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="MyDataTable">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="MyDataColumn" type="xs:string" minOccurs="0" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:choice>
        </xs:complexType>
      </xs:element>
    </xs:schema>
    

    【讨论】:

      猜你喜欢
      • 2021-06-14
      • 2021-05-18
      • 1970-01-01
      • 2011-02-16
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      相关资源
      最近更新 更多