我正在检查是否发生了DBNull。
C#代码:
tbDuration.Text = (string)MyReader["TDuration"]==DBNull?"":(string)MyReader["TDuration"];
但我在DBNull上收到错误:
错误4'System.DBNull'是'type',但用作'变量'C:\ Visual Studio
如何检查DBNull?
此致
茶
答案 0 :(得分:3)
DBNull
是一种类型。您正在寻找的是该类型的静态成员:DBNull.Value
。像这样:
tbDuration.Text = MyReader["TDuration"] == DBNull.Value ? "" : (string)MyReader["TDuration"];
注意:为了进行比较,您也不希望转换为string
。 DBNull.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"];