如果条件检查DBNull.Value
问题描述:
我试图检查DBNull.Value
但在这种情况下reader["Preferences"]
返回{}在即时窗口(为什么?)如果条件检查DBNull.Value
所以当(string)reader["Preferences"];
执行我得到一个类型转换错误
if (reader["Preferences"] == System.DBNull.Value)
{
preferences = (string)reader["Preferences"];
}
答
您正在尝试只投了当值为DBNull.Value
。
你应该反转的if
:中
if (reader["Preferences"] != System.DBNull.Value)
{
preferences = (string)reader["Preferences"];
}
你可以直接您Convert.ToString
(),而不是这个。它亲自处理dbnull值 – 2013-03-11 11:59:13
,我强烈主张使用'reader.ISDBNull(...)' – 2013-03-11 12:15:17