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