这是我的代码,包含以下列,在数据库中,这些列为nvarchars
。
SqlBulkCopy bulkCopy = new SqlBulkCopy(connection,
System.Data.SqlClient.SqlBulkCopyOptions.Default, transaction);
bulkCopy.DestinationTableName = "Test";
bulkCopy.ColumnMappings.Add("Number", "Code");
bulkCopy.ColumnMappings.Add("Type", "Type");
bulkCopy.ColumnMappings.Add("Group", "Group");
bulkCopy.ColumnMappings.Add("Short Text", "ShortText");
bulkCopy.ColumnMappings.Add("Text", "Description");
bulkCopy.WriteToServer(dataTable);
我正在尝试使用批量复制在数据库中插入整个数据表,但我收到此错误:
数据源中String类型的给定值无法转换为指定目标列的nvarchar类型。
答案 0 :(得分:18)
可能是由太短的列引起的。如果您的ShortText列定义为NVARCHAR(30)并且您有一个40个字符的字符串,则可能会出现该错误。例如:http://forums.asp.net/p/1228890/2212376.aspx
答案 1 :(得分:4)
我对这个问题有另一个答案,也许它可以派上用场。如果您有一个包含"
(引号)的字符串,您也会收到此错误消息。至少我刚收到此错误消息,我搜索了错误的行,我发现了这个。当我删除引号时,错误消失了。