Я использую класс SqlBulkCopy для вставки DataSet в пару таблиц в базе данных SQL Server.
Иногда входные данные не могут быть легко преобразованы в тип данных, требуемый целевым столбцом. Это приводит к исключению InvalidOperationException со следующим описанием:
Данное значение типа String из источника данных не может быть преобразовано в тип smalldatetime указанного целевого столбца.
InnerException говорит: Failed to convert parameter value from a String to a DateTime.
У меня есть несколько полей DateTime в моей таблице; как я могу узнать, какое поле вызывает исключение?
Вы можете попытаться преобразовать данные самостоятельно, прежде чем добавлять их в DataSet
. Это должно подчеркнуть хитроумные данные.
Единственное решение - разделить завоевателя. Сделайте тестовые вставки с отсутствующими столбцами до тех пор, пока вы не выделите столбец или не создадите выбор, используя функцию isdate (и любые другие, если это может быть проблема с датой окончания срока, чтобы определить, какие столбцы или строки