2010-07-26 2 views
2

Я использую C# для взаимодействия с базой данных SQL. база данных имеет поле DateTime. Когда я пытаюсь написать объект DateTime из C#, я получаю следующее сообщение об ошибке:Переполнение поля Datetime SQL Server 2008

ERROR [22008] [Microsoft][ODBC SQL Server Driver]Datetime field overflow

Я нашел это на тему:

http://social.msdn.microsoft.com/forums/en-US/sqldataaccess/thread/ac1b5a6d-5e64-4603-9c92-b75ba4e51bf2/

Есть ли манипуляция я могу сделать, чтобы мой DateTime объект на стороне C#?

редактирует Я пытаюсь добавить DateTime.MinValue

+3

Pls опубликовать код, который вы используете –

ответ

5

Похоже, вы просто проездом в плохой день. Например, DateTime.MinValue находится за пределами допустимого диапазона значений даты и времени SQL Server примерно на 1600 лет.

Кстати, вы не должны использовать ODBC для связи C# с SQL Server. Использование System.Data.SqlClient даст вам гораздо лучшую производительность.

+0

Вау, это была именно проблема. Я пытался установить DateTime.MinValue. я поклонился. – sbenderli

2

Я уверен, что ваш .NET DateTime не инициализирован, что означает, что это «0000-01-01», и это недопустимое значение для SQL Server DATETIME и часто не является желаемым значением;)

4

Объект .NET DateTime имеет больший диапазон, чем поле даты и времени SQL.

На вашем уровне доступа к данным в любое время, когда вы записываете дату в базу данных, убедитесь, что она находится внутри скорости SqlDateTime.MinValue и SqlDateTime.MaxValue.

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