-1

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

我可以看到它只在一秒钟内插入 50 个记录,完成整个过程需要几个小时。

有什么方法可以将整个数据集或数据表发送到 SQL,这样它会比这快得多?

我正在使用 Web 应用程序。


在 Windows 应用程序中,有使用 DataAdapter 进行批量更新的选项。同样明智的是 ASP.NET 有什么方法吗

4

1 回答 1

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

            }
于 2012-05-16T07:40:40.327 回答