parsingC#中的Excel工作表,将新值插入到数据库中

我目前正在一个项目parsing一个Excel工作表,并插入任何值到以前没有插入的数据库。 该表包含大约80个用于不同名称的date – 值对,每对平均约有1500行。

每个名称在一周结束时手动input5个date – 值对。 整个周末,我的过程将parsingexcel文件并插入当前不在数据库中的任何值。

我的问题是,鉴于大量的数据和每周增加的小数量,您将如何轻松确定需要插入哪些值? 我已经考虑添加另一个表来存储为每个名称插入的最后date,并采取任何行之后。

最简单的解决scheme,我会把它全部放到一个临时表中,然后在服务器上做比较。 或者,具有适当sorting和查找的SSIS可以确定差异并插入它们。

在使用SQL的数据库中,要比较120000行并不重要,但对数据库的120000个单独调用来validation该行是否在数据库中可能需要一段时间才能在客户端进行。

选项1将创build一个“lastdate”表,在您的周末导入结束时自动加盖。 然后在下一个星期你的程序可以查询该表中的最后一条logging,然后在该date之后才从excel文件读取。 可能是你最好的select。

选项2将在数据中查找唯一字段,并逐行检查数据库中是否存在该键。 如果不存在,则添加它,如果不存在的话。 如果选项1不符合你的期望,这将是我的第二select。

这一切都取决于您的解决scheme需要如何防弹。 如果您信任电子表格将不会以任何方式调整,使得它不一致的用户,比你的解决scheme将罚款。

如果你想保持安全(例如,如果一些旧的值可能会改变),你需要将整个事情与数据库进行比较。 说实话,你在这里谈论的数据量并不是很大,尤其是当你在周末运行的时候。 而且你仍然可以通过为数据库编写“批处理”types的存储过程来进行优化。

感谢所有的答案。

我已经决定,而不是创build一个存储最后date的新表,我将只select每个名称的最大date,然后在该date之后插入值到表中。

这假定在最后date之前的数据保持一致,这对于这个问题应该没问题。