我正在阅读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 2014-12-01 22:33:51
您正在阅读的日期时间值是什么?它可能超出System.DateTime的范围。 – Blorgbeard 2014-12-01 22:34:16
'IsDBNull'不会抛出该错误。但'reader.GetDateTime(“serviceDate”)'应该会导致编译器错误,因为'GetDateTime'只接受一个'int'作为列的索引参数。显示你的真实代码。 – 2014-12-01 22:34:47