using (var conn = new SqlConnection(connectionString)) { //SqlBulkCopy:大容量加载带有来自其他源的数据的 SQL Server 表 //SqlBulkCopyOptions:加载方式 using (var sqlbulkcopy = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.UseInternalTransaction)) { try { //超时 sqlbulkcopy.BulkCopyTimeout = 600; //数据库目标表名(如果有架构名,需要表示为 '架构名.表名') sqlbulkcopy.DestinationTableName = tableName; for (int i = 0; i < dt.Columns.Count; i++) { //列名映射:源列名-目标列名 //这里的写法需要保持DataTable和数据库表的列名一致 sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName); } //数据写入目标表 sqlbulkcopy.WriteToServer(dt); } catch (System.Exception ex) { throw ex; } } }
SqlServerUseEFDemo