【发布时间】:2008-10-28 12:12:29
【问题描述】:
所以我有这个大型 XML 文件,其中每条记录包含 300 多个元素,我需要将这些记录插入到数据库表中。 XML 文件中的节点名称与 db.xml 中的列名称相同。它们都是字符串。是否有一种自动的方式来映射它们并插入数据,或者我是否必须写出将每列映射到 XML 文件中的每个元素的代码行?使用 SQL Server 2005。
【问题讨论】:
标签: c# sql-server xml linq .net-3.5
所以我有这个大型 XML 文件,其中每条记录包含 300 多个元素,我需要将这些记录插入到数据库表中。 XML 文件中的节点名称与 db.xml 中的列名称相同。它们都是字符串。是否有一种自动的方式来映射它们并插入数据,或者我是否必须写出将每列映射到 XML 文件中的每个元素的代码行?使用 SQL Server 2005。
【问题讨论】:
标签: c# sql-server xml linq .net-3.5
我同意对于 SQL 服务器,使用批量加载或 SQL/XML 是一个不错的选择。
如果数据库不是 SQL 服务器并且本身不支持 xml,另一种选择是使用基本的 xslt 将 xml 转换为 csv 或 tsv;大多数数据库都可以导入分隔文件。
当然,另一个问题是:为什么有 300 列?
【讨论】:
【讨论】:
300 列?不是我阅读问题的方式,但我的英语又不是那么好。 :) 据我所知,Xml 和数据库表/列之间没有自动映射。但是写动态更新应该没那么难吧?获取所有列名(节点名)并将它们添加到一个字符串(column1、column2 等),然后遍历 xml 以生成值(node1.Value node2.Value 等)。或者,如果您使用的是 Sql Server 2005/2008,请使用 bulk insert。
【讨论】: