データベースにデータを追加する前に、データベース テーブルの列を c# のデータ テーブルにマップする方法を知りたいです。
using (SqlBulkCopy s = new SqlBulkCopy(conn))
{
s.DestinationTableName = destination;
s.WriteToServer(Ads_api_ReportData);
}
データベースにデータを追加する前に、データベース テーブルの列を 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);
}
}
参照: SqlBulkCopyColumnMappingCollection の使用方法 . .
http://www.codeproject.com/Articles/18418/Transferring-Data-Using-SqlBulkCopyも参照してください。
メソッド Add on ColumnMappings コレクションを使用すると、列をソース テーブルから宛先テーブルにマップできます。メソッド ColumnMappings.Add は、列をマップする 4 つの異なる方法を受け入れます。
SQLBulkCopy は、ColumnMappings コレクションに追加する際に考慮しなければならない両方の列のデータ型に非常に厳密です。