我正在检查是否发生 DBNull。
C#代码:
tbDuration.Text = (string)MyReader["TDuration"]==DBNull?"":(string)MyReader["TDuration"];
但我在 DBNull 上得到一个错误:
错误 4“System.DBNull”是一个“类型”,但用作“变量”C:\Visual Studio
如何检查 DBNull?
问候
茶
我正在检查是否发生 DBNull。
C#代码:
tbDuration.Text = (string)MyReader["TDuration"]==DBNull?"":(string)MyReader["TDuration"];
但我在 DBNull 上得到一个错误:
错误 4“System.DBNull”是一个“类型”,但用作“变量”C:\Visual Studio
如何检查 DBNull?
问候
茶
DBNull
是一种类型。您正在寻找的是该类型的静态成员:DBNull.Value
. 像这样的东西:
tbDuration.Text = MyReader["TDuration"] == DBNull.Value ? "" : (string)MyReader["TDuration"];
注意:string
出于比较的目的, 您也不想强制转换为 a 。DBNull.Value
将适用于 的实际结果MyReader[]
,但如果您投射它,则不会。在验证它不为空之后,然后你将它转换。
使用DBNull.Value检查空值。
tbDuration.Text =
MyReader["TDuration"]==DBNull.Value?"":(string)MyReader["TDuration"]
或者,您可以使用:
tbDuration.Text =
DBNull.Value.Equals(MyReader["TDuration"]) ?"":(string)MyReader["TDuration"]
您应该检查DBNull.Value
,而不是DBNull
直接检查。
System.DbNull.Value
, 是对 的实例的有效引用System.DbNull
。
因此,您可以检查DBNull
.
DbNull.Value
所以它不仅应该是DbNull
(string)MyReader["TDuration"]==DBNull.Value?"":(string)MyReader["TDuration"];