SqlBulkCopy可以把DataTable的資料一次大量的寫入SQL SERVER資料庫

不過只能寫入的目的地端只能是SQL SERVER

using System.Data.SqlClient

string BStr = "Data Source=192.168.1.11;Initial Catalog=HelloDB1;Persist Security Info=True;User ID=Hello1;Password=Hello2";

SqlConnection Bulkcn = new SqlConnection(BStr);

//SqlBulkCopy裡面就只能放SqlConnection,不能放別的像是OleDbConnection

SqlBulkCopy SBC = new SqlBulkCopy(Bulkcn);

//複製到目的地的哪個資料表

SBC.DestinationTableName = "dbo.I_Am_Table";


//設定你要複製過去的DataTable的每個欄位要對應到目的地的哪個欄位
SBC.ColumnMappings.Add("DataTable的欄位A", "資料庫裡的資料表的的欄位A");

SBC.ColumnMappings.Add("DataTable的欄位B", "資料庫裡的資料表的的欄位B");

SBC.ColumnMappings.Add("DataTable的欄位C", "資料庫裡的資料表的的欄位C");

 

Bulkcn.Open();

//假設DT1是已經有資料的DataTable,直接放進去就可以開始寫入了
SBC.WriteToServer(DT1);

SBC.Close();

Bulkcn.Close();

welkingunther 發表在 痞客邦 PIXNET 留言(1) 人氣()


留言列表 (1)

發表留言
  • Luffy
  • 為何我在WriteToServer(dt)會抱錯,The given ColumnMapping does not match up with any column in the source or destination.,可是dt的欄位跟資料庫都有一樣。