运算符“==”不能应用于 'string' 和 'system.dbnull' 类型的操作数
Operator '==' cannot be applied to operands of type 'string' and 'system.dbnull'
我正在从数据库中检索数据。因此我使用以下代码:
compname.Text = mRS.Fields["CompName"].Value == DBNull.Value
? ""
: mRS.Fields["CompName"].Value.ToString();
在 运行 时,我收到以下错误:
Operator '==' cannot be applied to operands of type 'string' and 'System.DBNull'
错误原因是什么?
改变
compname.Text = mRS.Fields["CompName"].Value == DBNull.Value ? "" : mRS.Fields["CompName"].Value.ToString();
到
compname.Text = mRS.Fields["CompName"] == DBNull.Value ? "" : mRS.Fields["CompName"].Value;
因为mRS.Fields["CompName"].Value
是那个字段的值,是string类型,DBNull.Value
是DBNull类型。
您应该将 DBNull.Value
与字段本身(而不是它的值)进行比较,如下所示:
compname.Text = DBNull.Value.Equals(mRS.Fields["CompName"]) ? "" : mRS.Fields["CompName"].Value;
我正在从数据库中检索数据。因此我使用以下代码:
compname.Text = mRS.Fields["CompName"].Value == DBNull.Value
? ""
: mRS.Fields["CompName"].Value.ToString();
在 运行 时,我收到以下错误:
Operator '==' cannot be applied to operands of type 'string' and 'System.DBNull'
错误原因是什么?
改变
compname.Text = mRS.Fields["CompName"].Value == DBNull.Value ? "" : mRS.Fields["CompName"].Value.ToString();
到
compname.Text = mRS.Fields["CompName"] == DBNull.Value ? "" : mRS.Fields["CompName"].Value;
因为mRS.Fields["CompName"].Value
是那个字段的值,是string类型,DBNull.Value
是DBNull类型。
您应该将 DBNull.Value
与字段本身(而不是它的值)进行比较,如下所示:
compname.Text = DBNull.Value.Equals(mRS.Fields["CompName"]) ? "" : mRS.Fields["CompName"].Value;