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秒左右完成。