2012-02-14 3 views
11

Это мой код со следующими столбцами, а в БД эти столбцы: nvarchars.Невозможно вставить таблицу данных с помощью sqlbulkcopy

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); 

Я пытаюсь вставить целую таблицу данных в БД, используя объемную копию, но я получаю эту ошибку:

The given value of type String from the data source cannot be converted to type nvarchar of the specified target column.

+0

Вам нужно будет показать нам некоторые структуры таблиц, код и т. Д. - только с этой ошибкой мы не сможем помочь вам ..... - см. Http://tinyurl.com/so-hints –

+0

, пожалуйста, проверьте исходные данные. В источнике могут быть недопустимые данные. –

ответ

18

Это может быть вызвано слишком короткой колонке , Если столбец ShortText определен как NVARCHAR (30), и у вас есть строка с 40 символами, вы можете получить эту ошибку. См. Здесь, например: http://forums.asp.net/p/1228890/2212376.aspx

+0

Бинго! Это была моя проблема. Хороший совет, и пример сообщения об ошибке, не сообщая вам «всю историю». – NateJ

+0

Удивительный! Сохранял мою жизнь;) – Icarus

4

У меня есть еще один ответ на этот вопрос, возможно, он может пригодиться кому-то. Если у вас есть строка, содержащая " (кавычка), вы также получите это сообщение об ошибке. По крайней мере, я получил сообщение об ошибке, и я искал неправильную строку, и я нашел это. Когда я удалил кавычки, ошибка исчезла.

+0

Я потратил часы, пытаясь разрешить эту ошибку, и это оказалось для меня виновником. Я просто скопировал все данные из исходной базы данных в электронную таблицу Excel, искал лист для плохого символа и нашел один экземпляр. – Krondorian

+0

Есть ли способ заставить его работать с кавычками или вставить их обратно после импорта? –

Смежные вопросы