c# - DateTime空值

标签 c# sql datetime oledbdatareader

我有以下代码应该检查数据读取器中的值是否不为空。如果是,则该方法应返回一个空值或空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/

相关文章:

java - 如何在java中将时间戳转换为日期和时间?

c# - DateTime.ToString 从所有格式到 dd/MM/YYYY?

c# - 用户需要什么权限才能在 Active Directory 中验证凭据?

sql - Yii2 如何将 SUM SQL 函数转换为查询生成器?

mysql - SQL获取2支球队的比赛记录

mysql。如何使用两个不同的文本记录从日志表中选择用户

python - 如何将日期时间转换为正确的格式以使用 pytz 模块

c# - 学习如何在 C# 中开发日程/约会系统的资源?

c# - 如何设置 ASP.NET 生成服务器?

c# - 使用 PayPal SOAP API 发送 API CAll