首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataTable.WriteXml不写入列的类型

DataTable.WriteXml不写入列的类型
EN

Stack Overflow用户
提问于 2020-02-22 14:08:24
回答 1查看 34关注 0票数 1

我发现DataTable.WriteXml()而不是,将列的类型写入生成的XML代码中!那么我如何区分32位整数和64位整数呢?

这是我的代码:

代码语言:javascript
复制
Int32 i32 = 12345678;
Int64 i64 = 12345678901234567;

DataTable p = new DataTable();
p.TableName = "Parameters";

p.Columns.Add("ColInt", i32.GetType());
p.Columns.Add("ColLong", i64.GetType());

DataRow r = p.NewRow();
r["ColInt"] = i32;
r["ColLong"] = i64;
p.Rows.Add(r);

StringWriter sw = new StringWriter();
p.WriteXml(sw);
string x = sw.ToString();

这是XML输出。您可以清楚地看到,这两列(ColInt、ColLong)的类型没有写入XML代码!

代码语言:javascript
复制
<DocumentElement>
  <Parameters>
    <ColInt>12345678</ColInt>
    <ColLong>12345678901234567</ColLong>
  </Parameters>
</DocumentElement>

有解决办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-22 14:25:27

您可以使用XmlWriteMode.WriteSchema作为WriteXml方法的参数。

代码语言:javascript
复制
 StringWriter sw = new StringWriter();
            p.WriteXml(sw, XmlWriteMode.WriteSchema);
            string x = sw.ToString();

它给出了以下xml数据及其模式。

代码语言:javascript
复制
<NewDataSet>
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Parameters" msdata:UseCurrentLocale="true">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="Parameters">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="ColInt" type="xs:int" minOccurs="0" />
                <xs:element name="ColLong" type="xs:long" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <Parameters>
    <ColInt>12345678</ColInt>
    <ColLong>12345678901234567</ColLong>
  </Parameters>
</NewDataSet>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60352968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档