使用SqlBulkCopy的无法插入数据表 [英] Can't insert data table using sqlbulkcopy
问题描述
这是我的代码与下面的列和数据库,这些列是 nvarchars
。
SqlBulkCopy的bulkCopy =新SqlBulkCopy的(连接,
System.Data.SqlClient.SqlBulkCopyOptions.Default,交易);
bulkCopy.DestinationTableName =测试;
bulkCopy.ColumnMappings.Add(编号,守则);
bulkCopy.ColumnMappings.Add(类型,类型);
bulkCopy.ColumnMappings.Add(本集团,集团);
bulkCopy.ColumnMappings.Add(短文本,ShortText);
bulkCopy.ColumnMappings.Add(文本,说明);
bulkCopy.WriteToServer(dataTable的);
我试图插入一个DB整体数据表,可以使用批量复制,但我得到这个错误:
从数据源String类型的给定值不能转换为键入指定的目标列的nvarchar的
块引用>
解决方案它的可能的被一个太短柱造成的。如果您ShortText列被定义为NVARCHAR(30),你有一个40字符的字符串,你可能会得到这个错误。看到这里,例如: http://forums.asp.net/p/1228890/2212376.aspx
This is my code with the following columns and in the DB, those columns are
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);
I am trying to insert a whole data table in a DB, using bulk copy but I am getting this error:
The given value of type String from the data source cannot be converted to type nvarchar of the specified target column.
解决方案It may be caused by a too-short-column. If your ShortText column is defined as NVARCHAR(30) and you have a 40 character string, you may get that error. See here for example: http://forums.asp.net/p/1228890/2212376.aspx
这篇关于使用SqlBulkCopy的无法插入数据表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!