我有以下代码应该检查数据读取器中的值是否不为空。如果是,则该方法应返回一个空值或空DateTime供以后使用。
private static DateTime safeGetDateTime(OleDbDataReader dr, int idx)
{
if (!dr.IsDBNull(idx))
return dr.GetDateTime(idx);
else return DateTime.MinValue;
}
我尝试仅返回null,但是由于方法的返回类型为“ DateTime”,因此无法正常工作。然后,如果数据读取器选择了null,则尝试返回DateTime.MinValue。这给了我以下错误:
SqlDateTime溢出。必须介于1/1/1753 12:00:00 AM和12/31/9999 11:59:59 PM之间。
任何帮助表示赞赏。
最佳答案
由于CLR和SQL Server中的DateTime.MinValue差异,导致出现此错误。
我建议您使用Nullable Type
关于c# - DateTime空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42956390/