使用实体框架插入和更新将Excel导入SQL Server

时间:2013-11-17 00:58:17

标签: excel insert entity

我有一个excel文件,我想使用实体框架导入基于现有数据库表的excel文件。现在我首先将excel表转换为DataTable,并循环遍历DataTable的每一行。每行都有一个id字段,如果数据库表中存在id,我需要更新它,否则我需要将此行插入数据库表。我想使用实体框架将我的循环包装到一个事务中,以便在出现错误时进行回滚。但是我遇到了两行具有相同ID但值不同的情况。检查第一行并添加我的实体集合,但第二行可能会错误地更新第一行添加的行,因为第一行实际上并未添加,因为在循环之后调用了延迟的context.SaveChanges()。如何在不重复调用环路中的context.SaveChanges()的情况下更新实体集合中先前添加的行?谢谢。

1 个答案:

答案 0 :(得分:0)

我认为我在过去十年左右没有这样做过,但我使用Microsoft Word的邮件合并为Excel工作表中的每一行创建了我需要的SQL语句(SELECT,INSERT和UPDATE)。一旦我在文本中获得了长SQL语句,我只需将其复制粘贴到控制台中,然后执行语句并完成作业。我相信有更好的方法可以做到这一点但当时它的工作知识有限,但需要。这个答案可能属于“不要在工作中尝试这个,但如果能够完成工作就可以在家中进行。”