首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用SqlBulkCopy将DataTable中的列映射到SQL表

使用SqlBulkCopy将DataTable中的列映射到SQL表
EN

Stack Overflow用户
提问于 2013-07-04 19:39:36
回答 4查看 80.3K关注 0票数 32

在将数据添加到数据库之前,我想知道如何将数据库表中的列映射到c#中的数据表。

代码语言:javascript
复制
using (SqlBulkCopy s = new SqlBulkCopy(conn))
{
    s.DestinationTableName = destination;
    s.WriteToServer(Ads_api_ReportData);
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-07-04 19:47:46

你可能需要一些东西,比如

代码语言:javascript
复制
 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);
    }    
}

参考:How to use SqlBulkCopyColumnMappingCollection?。。

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

票数 46
EN

Stack Overflow用户

发布于 2017-09-07 04:47:43

这是一项非常常见的任务,我为此编写了这个帮助器:

代码语言:javascript
复制
public static void AutoMapColumns(SqlBulkCopy sbc, DataTable dt)
{
    foreach (DataColumn column in dt.Columns)
    {
        sbc.ColumnMappings.Add(column.ColumnName, column.ColumnName);
    }
}

由于是我自己创建的DataTable,因此我将其列命名为与SQL表相同的名称。

票数 33
EN

Stack Overflow用户

发布于 2013-07-04 19:46:58

使用ColumnMappings

代码语言:javascript
复制
s.ColumnMappings.Add("Name", "Name");
s.ColumnMappings.Add("Address", "Address");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17469349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档