使用C#進行SqlServer的批量插入

        在很多時候,我們會進行一下批量插入的操作,比如讀取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);
}

       

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章