[英]Bulk inserting with two related tables from Excel
我需要使用C#WinForms将数据从excel工作表导入数据库。 每行都是一个“电力站点”,几行数据进入“站点”表。 每个站点还具有一个带有其信息(名称,电子邮件,电话)的“联系人”,但是该联系人可能已经存在或可能不存在于数据库中。 联系人主键(标识字段)是Sites表中的外键,但在运行时未知该值。
这是Excel文件包含的一些相关数据:
网站编号
联系人姓名
电子邮件
电话
表格如下:
Contacts
(
ContactID (identity)
ContactName
Email
Phone
)
Sites
(
SiteKey (identity)
SiteID
ContactID (foreign key)
)
如果表中不存在该联系人姓名+电子邮件+电话,则需要创建该联系人,并且需要在该行的网站中插入新的身份(如果联系人已经存在,则需要该ContactID)。
什么是解决此问题并获得最快结果的最佳方法。 在大多数情况下,Excel工作表中有1000多个行。
最简单的方法可能是使用sql bulkcopy将两个excel文件批量加载到临时表中,然后使用几个“ insert into
”语句在实际表中查找正确的外键。
但是,由于1000+行并不多(当然要在+上减少),因此您可以将它们都加载到内存中,并使用适当的键直接插入目标数据库中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.