Asp.net DBNull抛出一个错误
我正在检查DBNull是否出现 C#代码: 但是我在DBNull上得到一个错误: 错误4“System.DBNull”是一个“类型”,但与“变量”一样使用C:\Visual Studio 如何检查DBNull 问候Asp.net DBNull抛出一个错误,asp.net,Asp.net,我正在检查DBNull是否出现 C#代码: 但是我在DBNull上得到一个错误: 错误4“System.DBNull”是一个“类型”,但与“变量”一样使用C:\Visual Studio 如何检查DBNull 问候 Tea您应该检查,而不是直接检查DBNull。DBNull是一种类型。您要查找的是该类型的静态成员:DBNull.Value。大概是这样的: tbDuration.Text = MyReader["TDuration"] == DBNull.Value ? "" : (string)
Tea您应该检查,而不是直接检查DBNull。
DBNull
是一种类型。您要查找的是该类型的静态成员:DBNull.Value
。大概是这样的:
tbDuration.Text = MyReader["TDuration"] == DBNull.Value ? "" : (string)MyReader["TDuration"];
注意:为了进行比较,您也不希望强制转换为字符串DBNull.Value
将适用于MyReader[]
的实际结果,但如果您强制转换它,则不适用。在确认它不是空值之后,您可以强制转换它。使用检查空值
tbDuration.Text =
MyReader["TDuration"]==DBNull.Value?"":(string)MyReader["TDuration"]
或者,您可以使用:
tbDuration.Text =
DBNull.Value.Equals(MyReader["TDuration"]) ?"":(string)MyReader["TDuration"]
是对System.DbNull
实例的有效引用
因此,您可以对照DBNull
的静态值属性进行检查
所以它应该是DbNull.Value
而不仅仅是DbNull
(string)MyReader["TDuration"]==DBNull.Value?"":(string)MyReader["TDuration"];
请注意,您可以只使用tbDuration.Text=MyReader[“TDuration”].ToString()代码>为DBNull。值以这种方式转换为空字符串。将尝试使用它。谢谢。现在get a无法将类型“object”隐式转换为“string”。存在显式转换(是否缺少转换?),但对字符串的第一次转换除外-这对于DBNull将失败。是的,现在获取运算符“==”不能应用于“string”和“System.DBNull”类型的操作数
(string)MyReader["TDuration"]==DBNull.Value?"":(string)MyReader["TDuration"];