我正在通過ODBC連接從DB2數據庫讀取記錄。數據被填充到ODBCDataReader中。當我正在通過我的foreach循環時,我遇到了試圖解析多個不同日期時間字段的問題。閱讀空數據和空日期值的C#ODBCDataReader
某些字段爲空,有些字段的日期時間值爲空(9999-12-31 24:00:00:00),有些字段的日期時間值有效(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()名稱=「爲DBNull」似乎捕捉空值工作。然而,下一個if語句會引發ArgumentOutOfRangeException錯誤。這似乎發生在具有9999-12-31 24:00:00.000000值的字段上。
有沒有辦法正確解析這個?看起來像我試圖評估這些空日期時間字段拋出錯誤的任何方式。
它看起來像我不能觸摸沒有ArgumentOutOfRangeException的dr [dbFieldName]字段被引發時,該字段包含時間值24:00:00.000000。 – 2010-07-10 05:12:01
好吧,它看起來像我找到了解決方案。我不會選擇數據庫中的這些DateTime字段作爲時間戳,而是選擇它們作爲字符串。然後我可以根據需要解析這些值,並將它們放入DateTime對象中。 – 2010-07-10 05:40:29