0

C# WinForms を使用して、Excel シートからデータベースにデータをインポートする必要があります。各行は「電力サイト」であり、「サイト」テーブルに入るデータの列がいくつかあります。各サイトには、その情報 (名前、電子メール、電話番号) を含む「連絡先」もありますが、その連絡先はデータベースに既に存在する場合と存在しない場合があります。連絡先の主キー (ID フィールド) は Sites テーブルの外部キーですが、実行時には値がわかりません。

Excel ファイルに含まれる関連データの一部を次に示します。

サイト ID

連絡先

Eメール

電話

ここにテーブルがあります:

Contacts
(
    ContactID (identity)
    ContactName
    Email
    Phone 
)

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

その連絡先名 + 電子メール + 電話がまだテーブルに存在しない場合は、作成する必要があり、その新しい ID をサイトのその行に挿入する必要があります (連絡先が既に存在する場合は、その ContactID が必要です)。

これにアプローチし、最速の結果を得る最良の方法は何でしょうか。ほとんどの場合、1000 行以上が Excel シートにあります。

4

1 に答える 1

0

最も簡単な方法は、おそらく 2 つの Excel ファイルを sql bulkcopy を使用してステージング テーブルにバルクロードしinsert into、適切な外部キーを実際のテーブルにルックアップする " " ステートメントをいくつか使用することです。

ただし、1000以上の行は多くないため(もちろん+に依存します)、両方をメモリにロードし、適切なキーを使用してターゲットデータベースに直接挿入できます。

于 2012-10-28T12:27:08.843 に答える