【发布时间】:2015-01-30 01:27:33
【问题描述】:
我正在阅读 MySql 数据库,其中一列是 DateTime 类型。其中一些日期为空。我似乎无法弄清楚如何检查值是否为空。 我以为 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))
如何在不使用 try catch 的情况下检查它?
【问题讨论】:
-
阅读器的类型是什么?
-
您正在阅读的日期时间值是多少?它可能在 System.DateTime 的范围之外。
-
IsDBNull不会抛出该错误。但是reader.GetDateTime("serviceDate")应该会导致编译器错误,因为GetDateTime只接受int作为列索引的参数。显示你的真实代码。 -
Blorgbeard,GetDateTime 有一个字符串重载,是 IsDBNull 引发了错误。我试图通过即时窗口查看它的结果来确定它。
标签: c#