Mar*_*oli 7 c# sql datatable sqlbulkcopy
我有一个数据库表,包含列和主键。
我想从我的 c# 中的数据表进行批量复制。
当我的表中有主键时,我得到了异常,因为该表有 6 列,而我的数据表只有 5 列。
请问我该怎么办?
我应该将主键添加到我的 c# 中的数据表中吗?
(如果您需要任何代码请告诉我)
这是数据表
private DataTable getBasicDataTable()
{
DataTable dataTable = new DataTable();
dataTable.Clear();
dataTable.Columns.Add("customerID", typeof(int));
dataTable.Columns.Add("firstName", typeof(string));
dataTable.Columns.Add("lastName", typeof(string));
dataTable.Columns.Add("showsNumber", typeof(int));
dataTable.Columns.Add("visitNumber", typeof(int));
dataTable.Columns.Add("cancellation", typeof(int));
return dataTable;
}
Run Code Online (Sandbox Code Playgroud)
但在我的数据库表中,我有完全相同的列,但有额外的ID主键,
当我删除数据库中的主键时,一切正常
我自己找到了解决方案
bc.ColumnMappings.Add("customerID", "customerID");
sbc.ColumnMappings.Add("firstName", "firstName");
sbc.ColumnMappings.Add("lastName", "lastName");
sbc.ColumnMappings.Add("showsNumber", "showsNumber");
sbc.ColumnMappings.Add("visitNumber", "visitNumber");
sbc.ColumnMappings.Add("cancellation", "cancellation");
Run Code Online (Sandbox Code Playgroud)
列映射定义数据源中的列与目标中的列之间的关系。
...
如果数据源和目标表具有相同的列数,并且数据源中每个源列的序号位置与相应目标列的序号位置相匹配,则不需要 ColumnMappings 集合。但是,如果列计数不同,或者序数位置不一致,则必须使用 ColumnMappings 来确保将数据复制到正确的列中。
SqlBulkCopyColumnMapping有关如何使用它的信息,请参阅示例。
| 归档时间: |
|
| 查看次数: |
2514 次 |
| 最近记录: |