Null 和 System.DBNull. Value 之间有什么区别吗? 如果有,是什么?
我现在注意到这种行为
while (rdr.Read())
{
if (rdr["Id"] != null) //if (rdr["Id"] != System.DBNull.Value)
{
int x = Convert.ToInt32(rdr["Id"]);
}
}
虽然我使用 sql 数据读取器从数据库中检索数据,但是没有返回值 if(rdr["Id"] != null)
返回 true
,并且最终抛出了将 null 转换为整数的异常。
但是,如果我使用 if (rdr["Id"] != System.DBNull.Value)
,这将返回 false
。
Null 和 System.DBNull. Value 之间的区别是什么?