如何使用Asp.net将批量表添加到数据库中

时间:2012-05-16 07:24:40

标签: asp.net sql bulk

我有一种情况,我需要上传Excel表格,其中可能有超过50K的记录。问题是现在我使用DataTable来管理它。我将整个记录存储到DataTable中,然后将行进行操作并逐个将其插入到数据库中。

我可以看到它只能在一秒内插入50个记录并且完成整个过程需要几个小时..

有没有办法可以将整个数据集或DataTable发送到SQL,所以它会比这更快?

我正在使用Web应用程序。


在Windows应用程序中,可以选择使用DataAdapter进行批量更新。同样明智的是ASP.NET的任何方法

1 个答案:

答案 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);
                }

            }