-1

ここで、50K を超えるレコードがある可能性のある Excel シートをアップロードする必要がある状況があります。問題は、DataTable を使用して管理することです。レコード全体を DataTable に格納し、行を操作して DB に 1 つずつ挿入します。

1秒間に50レコードしか挿入されていないことがわかります.プロセス全体を完了するには数時間かかります..

これよりもはるかに高速になるように、DataSetまたはDataTable全体を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 に答える