0
我搜索了幾個有關SqlBulkCopy和ColumnMappings發佈的問題,並找不到解決方案。我正在使用C#ASP .NET MS VS 2010和SQL Server 2008 R2。SqlBulkCopy列映射500列加上新列
我一直在使用SqlBulkCopy從數據表源中加載數據。我想將ColumnMappings屬性添加到我的SqlBulkCopy對象,但由於我有很多列,我試圖避免列出我需要映射到DB登臺表中的列的代碼中的所有500列。
我需要使用ColumnMappings的原因是我必須刪除和添加列,以便架構是動態的,這不是一個好的設計,但是爲了這個目的,我們的內部客戶端可以,他們瞭解風險。
我也已將所有列名稱捕獲到集合中。我不認爲ColumnMappings方法將集合作爲源和目標。
我想過編寫兩個SqlBulkCopy對象來處理這個問題,但不知道這是否行得通。另一種選擇是使用T-SQL ..
什麼是最好的方式來處理這個問題或你會建議我探索什麼解決方案?
--set the connection string
//
string strConn = ConfigurationManager.ConnectionStrings["CPDM"].ToString();
//
SqlConnection scCPDM = new SqlConnection(strConn);
//
//
--create the SqlBulkCopy opbject
//
SqlBulkCopy bulkcopy = new SqlBulkCopy(strConn);
bulkcopy.BulkCopyTimeout = 3000;
bulkcopy.DestinationTableName = "CPDE_STAGING";
//
--need a to map all column mappings + new columns
--looking to do something like this --> bulkcopy.ColumnMappings.Add(*,*);
--then this ----> bulkcopy.ColumnMappings.Add(new_column,new_table_column);
--for each new column
bulkcopy.WriteToServer(dtNewRaw);