Я работаю над проектом консольного приложения С#. Попытка вставить значение DateTime
в SQL Server 2008, и это работает хорошо. В случае, если мой код не работает, я хочу вставить по умолчанию DateTime
в таблицу в базе данных.
При попытке вставить выдает ошибку.
Исключение SqlTypeException не было обработано:
переполнение SqlDateTime. Должно быть между 01.01.1753 00:00 и 31.12.9999 23:59:59.
Ниже я вставил конкретный код.
try
{
...
return DateTime.Now;
}
catch (WebException ex)
{
...
return default(DateTime);
}
Код, который я использовал для вставки сведений в таблицу LOGS:
connection.Open();
for (int i = 0; i < LogList.Count; i++)
{
string aprocessLogQuery = "INSERT INTO PROCESS_LOGS VALUES (@fileId, @startTime, @endTime, @transferredTime)";
command = new SqlCommand(aprocessLogQuery, connection);
command.Parameters.Add("fileId", SqlDbType.Int).Value = LogList[i].fileId;
command.Parameters.Add("startTime", SqlDbType.DateTime).Value = LogList[i].fileGeneration_StartDateTime;
command.Parameters.Add("endTime", SqlDbType.DateTime).Value = LogList[i].fileGeneration_EndDateTime;
command.Parameters.Add("transferredTime", SqlDbType.DateTime).Value = LogList[i].fileTransferred_DateTime;
dataReader.Close();
dataReader = command.ExecuteReader();
}
connection.Close();
Значение по умолчанию DateTime
равно 01/01/0001 12:00:00 AM
, поэтому оно не работает. Может ли кто-нибудь предложить альтернативное рабочее решение?
Спасибо
null
datetime дает значение по умолчанию в базе данных. - person Spaceman   schedule 06.06.2013DATETIME
в SQL Server не поддерживает даты до 1753 года, поэтому, если вы не можете изменить тип данных SQL Server наDATETIME2
(который будет поддерживать01/01/0001
), вам нужно изменить код .NET, чтобы он возвращал01/01/1900
или что-то подобное в качестве По умолчанию - person marc_s   schedule 06.06.20131\1\1753
- person V4Vendetta   schedule 06.06.2013