DBNull抛出错误

时间:2013-01-02 13:20:38

标签: asp.net

我正在检查是否发生了DBNull。

C#代码:

tbDuration.Text = (string)MyReader["TDuration"]==DBNull?"":(string)MyReader["TDuration"];

但我在DBNull上收到错误:

  

错误4'System.DBNull'是'type',但用作'变量'C:\ Visual Studio

如何检查DBNull?

此致

4 个答案:

答案 0 :(得分:3)

DBNull是一种类型。您正在寻找的是该类型的静态成员:DBNull.Value。像这样:

tbDuration.Text = MyReader["TDuration"] == DBNull.Value ? "" : (string)MyReader["TDuration"];

注意:为了进行比较,您也不希望转换为stringDBNull.Value将适用于MyReader[]的实际结果,但如果您投出它则不会。在验证它不是null之后,你就投了它。

答案 1 :(得分:3)

使用 DBNull.Value 检查空值。

tbDuration.Text = 
MyReader["TDuration"]==DBNull.Value?"":(string)MyReader["TDuration"]

或者,您可以使用:

tbDuration.Text = 
DBNull.Value.Equals(MyReader["TDuration"]) ?"":(string)MyReader["TDuration"]

答案 2 :(得分:1)

您应该直接检查DBNull.Value,而不是DBNull

答案 3 :(得分:0)

System.DbNull.Value 是对System.DbNull实例的有效引用。

因此,您可以检查DBNull的静态值属性。

所以DbNull.Value不仅DbNull

(string)MyReader["TDuration"]==DBNull.Value?"":(string)MyReader["TDuration"];