32

データベースにデータを追加する前に、データベース テーブルの列を c# のデータ テーブルにマップする方法を知りたいです。

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

5 に答える 5

46

おそらく次のようなものが必要です

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

参照: SqlBulkCopyColumnMappingCollection の使用方法 . .

http://www.codeproject.com/Articles/18418/Transferring-Data-Using-SqlBulkCopyも参照してください。

于 2013-07-04T11:47:45.600 に答える
0

メソッド Add on ColumnMappings コレクションを使用すると、列をソース テーブルから宛先テーブルにマップできます。メソッド ColumnMappings.Add は、列をマップする 4 つの異なる方法を受け入れます。

SQLBulkCopy は、ColumnMappings コレクションに追加する際に考慮しなければならない両方の列のデータ型に非常に厳密です。

于 2013-07-08T17:30:24.207 に答える