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