Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net DBNull抛出一个错误_Asp.net - Fatal编程技术网

Asp.net 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)

我正在检查DBNull是否出现

C#代码:

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

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

如何检查DBNull

问候


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"];