Я читаю запись из базы данных DB2 через соединение ODBC.Данные заполняются в ODBCDataReader.Проходя через цикл foreach, я сталкиваюсь с проблемами, пытаясь проанализировать несколько различных полей DateTime.
Некоторые поля имеют нулевое значение, некоторые имеют нулевое значение даты и времени (9999-12-31 24: 00: 00.000000), а некоторые имеют допустимые значения даты и времени (2010-07-09 20: 43: 32.037234).
Я пытался сделать что-то подобное, чтобы перехватить нулевые ошибки времени:
if (!dr[dbFieldName].Equals(DBNull.Value))
{
if (dr.GetDate(dr.GetOrdinal(dbFieldName)).Equals(DateTime.Parse("9999-12-31 24:00:00.000000")))
{
fieldValues[tag] = "";
}
else
{
strValue = dr.GetDate(dr.GetOrdinal(dbFieldName)).ToString("s");
fieldValues[tag] = strValue.Trim();
}
}
GetType (). Name! = "DBNull", кажется, работает для перехвата нулевых значений.Однако следующий оператор if выдает ошибку ArgumentOutOfRangeException.Похоже, это происходит в полях со значениями 9999-12-31 24: 00: 00.000000.
Есть ли способ правильно проанализировать это?Кажется, что при любом способе оценки этих нулевых полей даты и времени выдается ошибка.