【问题标题】:Save XML directly to Database with C#使用 C# 将 XML 直接保存到数据库
【发布时间】:2010-06-08 02:07:22
【问题描述】:

这是我的 xml 文件的一部分

<teams>
  <team-profile>
    <name>Australia</name>
    <id>1</id>
    <stats type="Test">
      <span>1877-2010</span>
      <matches>721</matches>
      <won>339</won>
      <lost>186</lost>
      <tied>2</tied>
      <draw>194</draw>
      <percentage>47.01</percentage>
    </stats>
    <squad>
      <player id="135" fullname="Shane Warne"/>
      <player id="136" fullname="Damien Martyn"/>
      <player id="138" fullname="Michael Clarke"/>
    </squad>
  </team-profile>
</team>

我在某处读到有一种方法可以将此 XML 直接保存到数据库中。我正在使用VS2010。我已经为我需要来自这个 xml 的数据创建了数据集。有没有办法将这个 XML 直接映射到数据集上? 还有什么想法吗? 我还必须将一些其他更复杂的 XML 文件保存到数据库中。

我已尝试使用 xsd.exe 为该 XML 创建 xsd 架构。

【问题讨论】:

  • 什么意思?您想要一个单元格来保存原始 XML 文本吗?

标签: c# xml database visual-studio-2010 dataset


【解决方案1】:

SQL Server 2005+ 有一个原生的 XML 数据类型,如果你创建一个列,你可以简单地插入到那个列中,这里有一个和你类似的insert,这个表的第二列的数据类型是 xml

INSERT INTO docs VALUES (1, '<book genre="security"
publicationdate="2002" ISBN="0-7356-1588-2">
   <title>Writing Secure Code</title>
   <author>
      <first-name>Michael</first-name>
      <last-name>Howard</last-name>
   </author>
   <author>
      <first-name>David</first-name>
      <last-name>LeBlanc</last-name>
   </author>
   <price>39.99</price>
</book>')
INSERT INTO docs VALUES (2, 
'<doc id="123">
    <sections>
   <section num="1"><title>XML Schema</title></section>
   <section num="3"><title>Benefits</title></section>
   <section num="4"><title>Features</title></section>
    </sections>
</doc>')

【讨论】:

  • 还要注意,由于您提到了数据集,因此数据集有一个 writeXml 属性,您可以使用它来获取底层 xml,如果您不想这样做,也可以通过中间内存流以这种方式保存它将其写入文件。
  • 谢谢,我去试试。
  • 我的意思是 writexml 方法对不起。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-27
  • 1970-01-01
相关资源
最近更新 更多