在很多時候,我們會進行一下批量插入的操作,比如讀取Excel數據,進行批量插入到數據庫,這時候不可能一條一條遍歷再一條一條進行插入,C#中的SqlBulkCopy提供了批量插入的功能。 要使用SqlBulkCopy進行批量插入,需要在數據庫建立一張表,在進行插入操作的時候,主要是利用一個DataTable進行傳值,DataTable中要插入的列需要跟數據庫中對應的列對應。這裏主要講一下怎麼使用,代碼如下:
try
{
//這裏模擬一個DataTable數據,批量插入主要插入的就是一個DataTable
DataTable dt = new DataTable();
dt.Columns.Add("LOGINNAME");
dt.Columns.Add("USERNAME");
//給DataTable賦值
for(int i = 0;i < 3; i++)
{
DataRow row = dt.NewRow();
row["LOGINNAME"] = i;
row["USERNAME"] = i;
dt.rows.Add(row);
}
using(SqlConnection cn = new SqlConnection("Data Source=xx.xxx.xx.xxx;Initial Catalog = XXXX;Integrated Security = SSPI;"))
{
cn.Open();
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy();
//這裏對應的是數據庫裏面的表的表名
sqlBulkCopy.DestinationTableName = "TEST";
//前面的參數是對應插入的DataTable的字段,後面是對應的數據庫的表的字段,將要插入的DataTable與要對應的數據庫字段一一對應即可
sqlBulkCopy.ColumnMappings.Add("LOGINNAME","LOGINNAME");
sqlBulkCopy.ColumnMappings.Add("USERNAME","USERNAME");
//進行數據的批量插入操作
sqlBulkCopy.WriteToServer(dt);
}
}
catch(Exception ex)
{
Console.WriteLine(ex);
}