[英]c# batchcopy foreign key
我正在讀取.txt文件並將其數據插入數據行,這些數據行被組合在一個數據視圖中,需要被推送到一個SQL數據庫到一個特定的表,但是它缺少一個外鍵而且我不知道如何獲取它在另一張桌子上。
DataTable.Row的字段應存儲在[Fouten]表中。 這些結果需要通過作為外鍵插入到[Fouten]表中的TreinId鏈接到第一個表[Treinen]。
但是,如何獲取需要插入[Treinen]表中可用的[Fouten]表中的ID?
或者我應該使用不同的方法同時將一堆行推送到SQL數據庫?
也許我可以從這里執行存儲過程? 那個問題也解決了嗎?
dt.Rows.Add(new object[] { datum, foutcode, omschrijving, module[module.Length - 1], tijd, teller, absentOfPresent});
using (SqlBulkCopy sbc = new SqlBulkCopy(GetConnectionString(), SqlBulkCopyOptions.KeepIdentity))
{
sbc.DestinationTableName = "dbo.Fouten";
sbc.BatchSize = 8000;
sbc.ColumnMappings.Add("Datum", "Datum");
sbc.ColumnMappings.Add("Foutcode", "FoutCode");
sbc.ColumnMappings.Add("Omschrijving", "Omschrijving");
sbc.ColumnMappings.Add("Module", "Module");
sbc.ColumnMappings.Add("Time", "Time");
sbc.ColumnMappings.Add("Teller", "Teller");
sbc.ColumnMappings.Add("Mnemo", "Mnemo");
//Retrieve TreinId from other table
//Select TreinId Where Name = '1302';
sbc.ColumnMappings.Add("??????", "TreinId");
sbc.WriteToServer(dtInsertRows);
}
我認為您不能與批量復制同時進行查找。 另外兩個選擇:
1)將文件數據批量復制到TEMPORARY表中,然后執行SELECT..INTO查詢,該查詢將臨時表和“ TREINEN”表連接在一起,並將數據(帶有外鍵)插入“ FOUTEN”表中
2)在C#中使用已經連接了第二個數據表的LINQ查詢,其中第二個數據表包含來自“ TREINEN”的數據,為您提供一個具有外鍵的新數據表,然后將其復制到Fouten表中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.