Подтвердить что ты не робот

Не удается вставить таблицу данных с помощью sqlbulkcopy

Это мой код со следующими столбцами и в БД, эти столбцы 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 указанного целевого столбца.

4b9b3361

Ответ 1

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

Ответ 2

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