Ответ 1
Это может быть вызвано слишком коротким столбцом. Если столбец ShortText определен как NVARCHAR (30), и у вас есть строка с 40 символами, вы можете получить эту ошибку. См. Здесь, например: http://forums.asp.net/p/1228890/2212376.aspx
Это мой код со следующими столбцами и в БД, эти столбцы 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
У меня есть другой ответ на этот вопрос, возможно, он может пригодиться кому-то. Если у вас есть строка, содержащая "
(кавычка), вы также получите это сообщение об ошибке. По крайней мере, я получил сообщение об ошибке, и я искал неправильную строку, и я нашел это. Когда я удалил кавычки, ошибка исчезла.