Я читаю базу данных MySql, где один из столбцов имеет тип DateTime. Некоторые из этих дат равны нулю. Я не могу понять, как проверить, является ли значение нулевым или нет. Я думал, что IsDbNull бы решить эту проблему, но это не делает никакой разницыIsDBNull выдает исключение
if (!reader.IsDBNull(4))
{
service.ServiceDate = reader.GetDateTime("serviceDate");
}
Это исключение я получаю:
«Дополнительная информация: Не удалось преобразовать дату MySQL/время значение System.DateTime»
Я также попытался
if (System.DBNull.Value == reader.IsDBNull(4))
, а также
reader.IsDBNull(4).ToString()
и
Convert.ToBoolean(reader.IsDBNull(4))
Как проверить это без использования попробовать поймать?
Какой тип читателя? – faester
Какое значение datetime вы читаете? Он может находиться вне диапазона System.DateTime. – Blorgbeard
'IsDBNull' не выбрасывает эту ошибку. Но 'reader.GetDateTime (" serviceDate ")' должен вызывать ошибку компилятора, поскольку 'GetDateTime' принимает только параметр' int', который является индексом столбца. Покажите свой реальный код. –