Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用SqlbulkcopycolumnMapping将数据从datatable复制到sql数据库_C#_Sql_Datatable - Fatal编程技术网

C# 使用SqlbulkcopycolumnMapping将数据从datatable复制到sql数据库

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

我正在尝试将列从Datatable映射到SQL database.Table,同时映射列。但我总是犯这个错误

System.InvalidOperationException:'给定的列名'FobID'与数据源中的任何列都不匹配。'

请参阅下面我使用的代码

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的文章