无法使用sqlbulkcopy插入数据表

c# sqlbulkcopy

这是我的代码,包含以下列,在DB中,这些列是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。

一般承认的答案

可能是由于列太短而造成的。如果您的ShortText列定义为NVARCHAR(30)并且您有40个字符的字符串,则可能会出现该错误。请参见此处: http//forums.asp.net/p/1228890/2212376.aspx


热门答案

我对这个问题有另一个答案,也许它可以派上用场。如果你有一个包含" (引号)的字符串,你也会得到这个错误信息。至少我得到了这个错误信息,我搜索了错误的行,我找到了这个。当我删除引号时,错误消失了。




许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因
许可下: CC-BY-SA with attribution
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因