0

我正在检查是否发生 DBNull。

C#代码:

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

但我在 DBNull 上得到一个错误:

错误 4“System.DBNull”是一个“类型”,但用作“变量”C:\Visual Studio

如何检查 DBNull?

问候

4

4 回答 4

3

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

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

注意:string出于比较的目的, 您也不想强制转换为 a 。DBNull.Value将适用于 的实际结果MyReader[],但如果您投射它,则不会。在验证它不为空之后,然后你将它转换。

于 2013-01-02T13:22:04.763 回答
3

使用DBNull.Value检查空值。

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

或者,您可以使用:

tbDuration.Text = 
DBNull.Value.Equals(MyReader["TDuration"]) ?"":(string)MyReader["TDuration"]
于 2013-01-02T13:23:51.960 回答
1

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

于 2013-01-02T13:21:54.850 回答
0

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

因此,您可以检查DBNull.

DbNull.Value所以它不仅应该是DbNull

(string)MyReader["TDuration"]==DBNull.Value?"":(string)MyReader["TDuration"];
于 2013-01-02T13:25:44.347 回答