我开始 MySQL 查询,查询一个列表,其中一个值是 DateTime 对象。在构建此列表时,它会遇到一个空值并且 --- DateTimeSqlNullValueException: Data is Null
。
首先,我天真地尝试使用 ISNULL
、!=NULL
、==NULL
...,它们不是 DateTime 对象的方法。然后我试了一下
queryResult.EventTime = rdr.GetDateTime("timeIn");
if (Convert.IsDBNull(rdr.GetDateTime("timeIn")))
{
Console.Write("yeup it's null");
queryResult2.EventTime = DateTime.MinValue;
}
这也没有用。
然后我虽然不是 rdr.GetDateTime()
我想也许可以使用 GetString()
并使用字符串的方法来测试 null 然后将其更改回DateTime
并将其设置为 DateTime.MinValue
,以便稍后在 View 中解决它。这似乎是一个完整的问题,而且不是很优雅。所以我一直在寻找可以测试 rdr.GetDateTime("timeIn");
是否为空并将其设置为 DateTime.MinValue
最佳答案
在您知道值不为空之前不要使用GetDateTime
:
if (rdr.IsDBNull(rdr.GetOrdinal("timeIn"))))
{
Console.Write("yeup it's null");
queryResult2.EventTime = DateTime.MinValue;
}
else
{
queryResult.EventTime = rdr.GetDateTime("timeIn");
}
关于C# 日期时间 SqlNullValueException : Data is Null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9796087/