小编Evr*_*Evr的帖子

解释处理DBNull?

我有一个可以为空的DateTime字段"BirthDate",现有代码以这种方式处理这个问题

info.BirthDate = (DateTime?)reader["Birthdate"];
Run Code Online (Sandbox Code Playgroud)

这会导致"无效转换"错误,并且会中断.好吧,我理解这是因为nulls的返回方式与sql不同,并且类型为"DBNull"

结果证明是这样的

if (reader["Birthdate"] != DBNull.Value)
{
    info.Birthdate = (DateTime)reader["Birthdate"];
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么这个有效吗?..我特别迷失在DBNull的.Value部分.如果IS返回作为的DBNull如何代码连这个块内到达?

c# sql datetime dbnull

2
推荐指数
1
解决办法
674
查看次数

标签 统计

c# ×1

datetime ×1

dbnull ×1

sql ×1