C# 使用SqlbulkcopycolumnMapping将数据从datatable复制到sql数据库
我正在尝试将列从Datatable映射到SQL database.Table,同时映射列。但我总是犯这个错误 System.InvalidOperationException:'给定的列名'FobID'与数据源中的任何列都不匹配。' 请参阅下面我使用的代码C# 使用SqlbulkcopycolumnMapping将数据从datatable复制到sql数据库,c#,sql,datatable,C#,Sql,Datatable,我正在尝试将列从Datatable映射到SQL database.Table,同时映射列。但我总是犯这个错误 System.InvalidOperationException:'给定的列名'FobID'与数据源中的任何列都不匹配。' 请参阅下面我使用的代码 using(SqlBulkCopy sqlcopyTFobs = new SqlBulkCopy(destCNS)) { sqlcopyTFobs.Destination
using(SqlBulkCopy sqlcopyTFobs = new SqlBulkCopy(destCNS))
{
sqlcopyTFobs.DestinationTableName = "[dbo].[TFobs]";
SqlBulkCopyColumnMapping mapFodID = new SqlBulkCopyColumnMapping("FobID", "FobID");
sqlcopyTFobs.ColumnMappings.Add(mapFodID);
sqlcopyTFobs.WriteToServer(dtTPositions);
}
如果使用以下代码复制所有列,则所有数据都将被复制。但我只需要复制某些列
using(SqlBulkCopy sqlcopyTFobs = new SqlBulkCopy(destCNS))
{
sqlcopyTFobs.DestinationTableName = "[dbo].[TFobs]";
sqlcopyTFobs.WriteToServer(dtTPositions);
}
请注意,列映射区分大小写。你可以从网站上得到一些指导。这是下面的一小段 列映射定义数据源和目标表之间的映射 如果未定义映射-即ColumnMappings集合为空-则>列将基于序号位置进行隐式映射。要使其工作,源架构和>目标架构必须匹配。如果没有,将抛出InvalidOperationException 如果ColumnMappings集合不是空的,则不必指定data>源中存在的每一列。未被集合映射的对象将被忽略 您可以按名称或序号引用源列和目标列。您还可以在同一映射集合中混合>按名称和按顺序列引用 看起来您的映射不准确 如果您试图从复制中删除一些字段,请参阅这篇关于stackoverflow的文章