DataTableの列をSqlBulkCopyを使用してSQLテーブルにマッピングする

c# datatable sql sqlbulkcopy

質問

データベースにデータを追加する前に、データベーステーブルの列をc#のデータテーブルにどのようにマップできるかを知りたいと思います。

using (SqlBulkCopy s = new SqlBulkCopy(conn))
{
    s.DestinationTableName = destination;
    s.WriteToServer(Ads_api_ReportData);
}

受け入れられた回答

あなたはおそらく何かを必要とします

 public void BatchBulkCopy(DataTable dataTable, string DestinationTbl, int batchSize)
{
    // Get the DataTable 
    DataTable dtInsertRows = dataTable;

    using (SqlBulkCopy sbc = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.KeepIdentity))
    {
        sbc.DestinationTableName = DestinationTbl;

        // Number of records to be processed in one go
        sbc.BatchSize = batchSize;

        // Add your column mappings here
        sbc.ColumnMappings.Add("field1","field3");
        sbc.ColumnMappings.Add("foo","bar");

        // Finally write to server
        sbc.WriteToServer(dtInsertRows);
    }    
}

Ref: SqlBulkCopyColumnMappingCollectionを使用するには? 。 。

Seelもhttp://www.codeproject.com/Articles/18418/Transferring-Data-Using-SqlBulkCopy


人気のある回答

ので、元のクエリ(またはテーブル)と、ターゲット表の列が同じ名前を持つとまったく同じ順序である場合は明示的なマッピングを記述する必要がないことを知っておくと便利かもしれませんSqlBulkCopy作成されます。このデフォルト順序でのデフォルトマッピング



ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ