繁体   English   中英

使用Excel中的两个相关表进行批量插入

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM