我正在尝试在映射列的同时将列从Datatable映射到SQL database.Table。但是我不断收到这个错误
“ System.InvalidOperationException:'给定的ColumnName'FobID'与数据源中的任何列都不匹配。'
使用波纹管查看代码im。
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);
}
请注意,列映射区分大小写。您可以从MS网站获得一些指导。这是那里的一小段
列映射定义了数据源和目标表之间的映射。
如果未定义映射-即ColumnMappings集合为空->列将根据顺序位置隐式映射。为了使它起作用,源和>目标架构必须匹配。如果不这样做,将抛出InvalidOperationException。
如果ColumnMappings集合不为空,则不必指定data> source中存在的每一列。那些未被集合映射的对象将被忽略。
您可以按名称或顺序引用源和目标列。您也可以在同一映射集合中混合按名称和按列引用。
看起来您的映射不正确。
如果您尝试从复制中删除某些字段,请参见stackoverflow上的此文章跳过SqlBulkCopy中的某些列
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句