Система. Данные. SqlTypes. SqlTypeException: переполнение SqlDateTime

Легкое решение: не используйте tfoot. Поместите строку (строки) нижнего колонтитула в конце tbody. Теперь они еще распечатают в конце таблицы и не где.

5
задан Eric 4 August 2009 в 11:08
поделиться

4 ответа

Мэтт, скорее всего, на правильном пути. Вы определили значение по умолчанию для своего столбца, однако это вступит в силу только в том случае, если вы действительно вставите что-то в свою таблицу в базе данных.

Когда вы выполняете модульный тест, как вы говорите, вы, скорее всего, инициализируете переменную DateTime к чему-то (или нет - тогда это будет DateTime.MinValue, то есть 01/01/0001), а затем вы отправляете это на SQL Server, и это значение выходит за пределы допустимого диапазона для DATETIME на SQL Server (как ошибка ясно сказано).

Итак, что вам нужно сделать, это добавить строку в свой модульный тест .NET, чтобы инициализировать переменную DateTime как «DateTime.Today»:

DateTime myDateTime = DateTime.Today

, а затем вставить ее в SQL Server.

ИЛИ : вы можете изменить свой оператор SQL INSERT так, чтобы он не вставлял значение для этого столбца - сейчас это выглядит так, он делает это (и пытается вставить эту - для SQL Server - недопустимую дату в таблицу). Если вы не укажете этот столбец в INSERT, тогда значение столбца по умолчанию getdate () сработает и вставит сегодняшнюю дату в столбец.

Marc

7
ответ дан 13 December 2019 в 05:39
поделиться

Используете ли вы Linq to SQL для написания модульного теста?

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

3
ответ дан 13 December 2019 в 05:39
поделиться

Вы, вероятно, получаете ошибку переполнения в своем модульном тесте, потому что вы передаете неинициализированный DateTime со значением DateTime.MinValue, которое находится за пределами допустимого диапазона для даты и времени SQL.

Я думаю Я видел это сообщение об ошибке при изменении таблицы вручную, это не проблема, просто обновите таблицу.

0
ответ дан 13 December 2019 в 05:39
поделиться

вы используете настройку класса контекста данных с файлом DBML и всем прочим? Если это так, то вы можете щелкнуть поле в вашем файле DBML и установить для свойства Auto Generated Value значение True. Visual Studio уже должна знать, как делать это с полями Pkey, но должна быть установлена ​​для таких действий с «отметкой времени»

0
ответ дан 13 December 2019 в 05:39
поделиться