将SQL数据库中的记录与Excel进行比较,并相应地更新数据库

时间:2012-11-09 20:32:20

标签: c# sql excel

我有一个包含大约100列和大约10000行的表。 我会定期收到一个包含类似数据的Excel,现在我需要更新表格。 如果Excel中存在新行,则必须将它们添加到数据库中。 如果旧行已更新,我需要更新db中的行。 如果删除了某些行,我需要从主表中删除该行并添加到另一个表中。

我考虑过按以下步骤进行:

将db中的所有行提取到DataSet中。 将Excel中的所有行导入DataSet。 现在使用连接比较这两个DataSet并执行所需的操作。

我从未使用过如此规模的数据,并且担心性能问题。让我知道实现这一要求的理想方式。

提前致谢。 :)

2 个答案:

答案 0 :(得分:3)

不要担心10k记录的性能,你不会注意到它......

或许更好的方法是在临时表中导入excel文件并使用几个简单的SQL查询进行处理...你将节省开发时间,它可能会表现得更好... < / p>

答案 1 :(得分:2)

正如我的经验所说,如果您选择在t-sql中执行以下操作,那么它就如此简单:

  1. 您可以在SQL Server中使用"OPENROWSET""OPENQUERY",链接服务器,DTS和许多其他内容将excel文件导入临时表。
  2. 你可以写一些简单的查询来做到这一点。如果您使用的是SQL 2008,"MERGE"已经为您提出了问题。
  3. 另一件事是性能与C#有很大不同。您可以使用"TOP"子句来比较比较并执行许多其他操作。

    希望它有所帮助。 干杯