C# 超大数据量导入 SqlBulkCopy

 1         public static void ImportTempTableDataIndex(DataSet ds,string TempTableName,string strSqlConnection)
 2         {
 3 
 4             //获取写入连接
 5             string str = strSqlConnection;
 6             SqlConnectionStringBuilder sb = new SqlConnectionStringBuilder(str);
 7             string DataSource = sb.DataSource;
 8             string PersistSecurityInfo = sb.PersistSecurityInfo.ToString();
 9             string Pwd = sb.Password;
10             string UserID = sb.UserID;
11             string basestr = sb.InitialCatalog;
12             string InitialCatalog = sb.InitialCatalog;
13 
14             //开始写入数据
15             str = $"Data Source={DataSource};database={basestr};user={UserID};password={Pwd}";
16             using (SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(str, SqlBulkCopyOptions.UseInternalTransaction))
17             {
18                 //DataSet与数据库表一一对应时不需要写对应关系
19                 //sqlBulkCopy.ColumnMappings.Add("ID", "ID");
20 
21 
22                 sqlBulkCopy.EnableStreaming = true;
23                 sqlBulkCopy.DestinationTableName = $"{TempTableName}";
24                 sqlBulkCopy.WriteToServer(ds.Tables[0]);
25 
26                 sqlBulkCopy.Close();
27             }
28             ds.Dispose();
29         }

此方法测试30万记录,20个varchar(255)字段,导入6秒左右完成。

原文地址:https://www.cnblogs.com/dcrenl/p/12802257.html