繁体   English   中英

无法使用sqlbulkcopy插入数据表

[英]Can't insert data table using 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 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM