我有一种情况,我需要上传Excel表格,其中可能有超过50K的记录。问题是现在我使用DataTable来管理它。我将整个记录存储到DataTable中,然后将行进行操作并逐个将其插入到数据库中。
我可以看到它只能在一秒内插入50个记录并且完成整个过程需要几个小时..
有没有办法可以将整个数据集或DataTable发送到SQL,所以它会比这更快?
我正在使用Web应用程序。
在Windows应用程序中,可以选择使用DataAdapter进行批量更新。同样明智的是ASP.NET的任何方法
答案 0 :(得分:1)
希望你想要
public void BultInsert(DataTable dtSource)
{
System.Data.SqlClient.SqlBulkCopy bcp = new System.Data.SqlClient.SqlBulkCopy(GetconnectionString());//add connectionstring here
bcp.DestinationTableName = "DestinationTable";//give destination table name
//bcp.ColumnMappings.Add("Column1", "Column1");//Map all columns
bcp.ColumnMappings.Add("Column2", "Column2");
bcp.ColumnMappings.Add("Column3", "Column3");
// and so on...., maap all source table with your destination table
if (dtSource.Rows.Count > 0)
{
bcp.WriteToServer(dtSource);
}
}