一个星期以来,我一直在研究和编写/重写一个程序来完成这项任务。我需要在这方面进行一些合作,也许会提出一些我以前没有想到的东西。具体来说,我们每天都会向我们发送一个自动生成的 XML 文件,其中包含约 7 万条记录(大小约 75MB)。我被要求在其中一个服务器 (SQL) 上创建一个包含此信息的表,以便可以对其进行查询。此外,该程序必须更新现有记录(如果数据已更改)并每天插入新记录。不得从数据库中删除记录
这是我尝试过的方法列表(到目前为止)以及它们不起作用的原因。
SQLXMLBulkLoad - 这非常适合导入数据。但是,批量加载类的限制是它不能更新和/或插入。是时候重写了。
SQL OpenRowSet(使用 SQLCommand 等) - 这不起作用,因为服务器、程序和 XML 文件都将 3 位于不同的计算机上。这些设备可以配置为允许彼此访问文件(特别是服务器),但是这种方法被认为“不现实,开销太大”需要重新写入。
DataSet Merge,然后是 TableAdapter.Update - 这个方法最初看起来肯定会起作用。思路很简单,使用DataSet.XMLRead()方法将XML数据放入数据集中的一个表中,然后只需将SQL表添加到数据集中(使用SQLCommand等),合并两个表,然后使用Table将表更新/插入到现有 SQL 表中的适配器。此方法似乎不起作用,因为 XML 文件有两个包含日期的节点(列)。不幸的是,SQL 和 XML 之间没有统一的 Date 数据类型。我什至尝试将 XML 文件中的所有日期格式更改为 DateTime SQL 格式,该格式有效,但在运行时仍被视为数据类型不匹配异常。
在这一点上,我没有想法。这似乎是以前肯定做过的任务。我不一定要找人为我编写这段代码(我完全有能力),我只需要在这个主题上进行一些合作。
谢谢你