SqlBulkCopy這種批量寫入方式,可以大大的節約數據庫導入數據的時間,因爲字符串拼接後通過循環插入數據庫、需要不停的打開和關閉連接。
注意事項:dataTable的表頭得和所要插入的數據庫表中的字段名稱一一對應,注意重命名:如:dataTable.Columns[0].ColumnName = "內容";
/// <summary>
/// 利用SqlBulkCopy批量寫入數據庫
/// </summary>
/// <param name="dt"></param>
public void WriteIntoDataBase(DataTable dt)
{
SqlConnection myConn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["dbBaseDatabase"].ConnectionString);
myConn.Open();
SqlBulkCopy bulkCopy = new SqlBulkCopy(myConn);
bulkCopy.BatchSize = 10000;
bulkCopy.BulkCopyTimeout = 60;
bulkCopy.DestinationTableName = "T_Sys_UploadTest";
for (int i = 0; i < dt.Columns.Count; i++)
{
string columnName = dt.Columns[i].ColumnName;
bulkCopy.ColumnMappings.Add(columnName, columnName);
}
bulkCopy.WriteToServer(dt);
//myConn.Close();
myConn.Dispose();
}