【问题标题】:How to save xml data from an XmlDocument object into a SQL table using C#如何使用 C# 将 XmlDocument 对象中的 xml 数据保存到 SQL 表中
【发布时间】:2014-11-12 10:31:43
【问题描述】:

我的 XML 如下

<employees>
    <employee email="email1" dateofbirth="1900-01-01" lastname="lastname1" firstname="firstname1" />
    <employee email="email2" dateofbirth="0001-01-01" lastname="lastname2" middleinitial="2" firstname="firstname2" />
</employees>

我在数据库中的表 [dbo.Employee] 有下面的列

FirstName 
LastName
DOB 

以上 XML 数据在 XmlDocument 对象中可供我使用。我想将上述数据保存在 SQL 表的各个列中。请帮忙..

【问题讨论】:

  • 遍历节点,将节点值保存到变量中,然后将其传递给查询

标签: c# mysql sql-server xml


【解决方案1】:

有多个选项可以将 XML 文件上传到 SQL SERVER 表。

1) 您可以使用 C# 和 SQL SERVER 来实现相同的功能。检查此网址:http://www.aspdotnet-suresh.com/2012/12/aspnet-send-xml-file-as-parameter-to.html

2) SQL SERVER 的批量插入功能。检查此网址:http://msdn.microsoft.com/en-IN/library/ms191184.aspx

3) 使用数据流任务或 SSIS。检查此网址:How to load an XML file into a database using an SSIS package?

【讨论】:

  • 感谢您的帮助。第一种方法似乎很合适,但这里的问题是 XmlReader 使用文件来读取 xml,因为我的 xml 数据存在于 XmlDocument 对象中。我本可以将数据写入另一个文件,然后将文件传递给 XmlReader,但这不是我项目的正确解决方案。无论如何,我可以在不创建任何中间文件的情况下使用 XmlDocument 对象中的数据吗?
【解决方案2】:

在过去的一周里,我遇到了同样的问题。我最终做的是使用 Python 的 pyodbc SQL 连接器连接到数据库和 xml 解析器来解析 xml 文件中的文本。

我相信您可以使用 C# 做同样的事情。

Here你可以了解 C# 中的 XML 解析器。

然后就可以按照this link中描述的方式连接数据库了。

所以,你最终要做的是遍历 xml,使用 xml 解析器,然后构造正确的 sql 语句以插入数据库。

在您的示例中,所需的 SQL 代码应如下所示:

INSERT INTO Employee (FirstName,LastName,DOB)
VALUES ('firstname1','firstname2','1900-01-01')

引号内的值将通过 XML 解析器动态生成。

【讨论】:

  • 感谢您的帮助。如果我有一个确定的文件从哪里读取数据,您建议的解决方案就可以工作。显然,我的问题并非如此。不同类型的数据将在不同的文件中,并且每次上传文件时名称可能会有所不同。所以我不能依赖文件名。这限制了 XmlReader 的使用。
猜你喜欢
  • 2016-09-05
  • 1970-01-01
  • 2012-09-22
  • 2013-08-28
  • 2011-02-09
  • 1970-01-01
  • 2017-03-30
  • 1970-01-01
  • 2010-11-01
相关资源
最近更新 更多