0

我需要使用 C# WinForms 将数据从 Excel 工作表导入数据库。每行都是一个“电力站点”,有几列数据进入“站点”表。每个站点还有一个包含其信息(姓名、电子邮件、电话)的“联系人”,但该联系人可能已经或可能不存在于数据库中。联系人主键(身份字段)是 Sites 表中的外键,但该值在运行时未知。

以下是 Excel 文件包含的一些相关数据:

站点ID

联系人姓名

电子邮件

电话

以下是表格:

Contacts
(
    ContactID (identity)
    ContactName
    Email
    Phone 
)

Sites
(
    SiteKey (identity)
    SiteID
    ContactID (foreign key)
)

如果表中不存在联系人姓名 + 电子邮件 + 电话,则需要创建它,并且需要将新身份插入到站点的该行中(如果联系人已经存在,则需要该 ContactID)。

解决此问题并获得最快结果的最佳方法是什么。在大多数情况下,Excel 工作表中有 1000 多行。

4

1 回答 1

0

最简单的方法可能是使用 sql bulkcopy 将两个 excel 文件批量加载到暂存表中,然后使用几个“ insert into”语句将正确的外键查找到您的真实表中。

但是,由于 1000 多行并不多(当然取决于 +),因此您可以将它们都加载到内存中,然后使用适当的键直接插入目标数据库。

于 2012-10-28T12:27:08.843 回答