在将数据添加到数据库之前,我想知道如何将数据库表中的列映射到c#中的数据表。
using (SqlBulkCopy s = new SqlBulkCopy(conn))
{
s.DestinationTableName = destination;
s.WriteToServer(Ads_api_ReportData);
}
发布于 2013-07-04 19:47: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);
}
}
参考:How to use SqlBulkCopyColumnMappingCollection?。。
Seel也叫http://www.codeproject.com/Articles/18418/Transferring-Data-Using-SqlBulkCopy
发布于 2017-09-07 04:47:43
这是一项非常常见的任务,我为此编写了这个帮助器:
public static void AutoMapColumns(SqlBulkCopy sbc, DataTable dt)
{
foreach (DataColumn column in dt.Columns)
{
sbc.ColumnMappings.Add(column.ColumnName, column.ColumnName);
}
}
由于是我自己创建的DataTable
,因此我将其列命名为与SQL表相同的名称。
发布于 2013-07-04 19:46:58
s.ColumnMappings.Add("Name", "Name");
s.ColumnMappings.Add("Address", "Address");
https://stackoverflow.com/questions/17469349
复制相似问题