SqlBulkCopy的原理就是通過在客戶端把數據都緩存在table中,然後利用SqlBulkCopy一次性把table中的數據插入到資料庫中。 補充一下: SqlBulkCopy的ColumnMappings中列的名稱受大小寫敏感限制,在構造DataTable的時候需要註意列名要與表一致。 關於s ...
SqlBulkCopy的原理就是通過在客戶端把數據都緩存在table中,然後利用SqlBulkCopy一次性把table中的數據插入到資料庫中。
SqlConnection sqlConn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString);
SqlBulkCopy bulkCopy = new SqlBulkCopy(sqlConn);
bulkCopy.DestinationTableName = "BulkTestTable";
bulkCopy.BatchSize = dt.Rows.Count;
try
{
sqlConn.Open();
if (dt != null && dt.Rows.Count != 0)
bulkCopy.WriteToServer(dt);
}
catch (Exception ex)
{
throw ex;
}
finally
{
sqlConn.Close();
if (bulkCopy != null)
bulkCopy.Close();
}
補充一下:
SqlBulkCopy的ColumnMappings中列的名稱受大小寫敏感限制,在構造DataTable的時候需要註意列名要與表一致。
關於sqlbulkcopy的事務處理,使用事務在性能上會有一定的影響,如果要使用事務,可以設置SqlBulkCopyOptions.UseInternalTransaction。