从数据表中检索单个值如何检查 NULL



我正在尝试将行esmcost的值与表wsmtbl psmcost进行比较esmcost但成本值null,因此我收到以下错误:

运算符"<>"未定义为类型"DBNull"和类型"DBNull">

有没有办法将空值更改为零?

这是 C# 代码

ds.Tables["wsmtbl"].Rows[0]["esmcost"] <> ds.Tables["wsmtbl"].Rows[0]["psmcost"]

尝试以下操作。

Decimal esmcost;
if (ds.Tables["wsmtbl"].Rows[0]["esmcost"] == DBNull.Value)
    esmcost = 0.00;
else
    esmcost = Convert.ToDecimal(ds.Tables["wsmtbl"].Rows[0]["esmcost"]);
Decimal psmcost;
if (ds.Tables["wsmtbl"].Rows[0]["psmcost"] == DBNull.Value)
    psmcost = 0.00;
else
    psmcost = Convert.ToDecimal(ds.Tables["wsmtbl"].Rows[0]["psmcost"]);
if (esmcost != psmcost)
{
    ...
}

可以使用三元运算符语法,但出于可读性原因,我选择了上述语法。例如:

Decimal esmcost = ds.Tables["wsmtbl"].Rows[0]["esmcost"]
    == DBNull.Value ? 0.00 : Convert.ToDecimal(ds.Tables["wsmtbl"].Rows[0]["esmcost"]);

试试这个,

if(ds.Tables["wsmtbl"].Rows[0]["esmcost"] == DBNull.Value)
{
   ds.Tables["wsmtbl"].Rows[0]["esmcost"] = 0;
}
 ds.Tables["wsmtbl"].Rows[0]["esmcost"] != ds.Tables["wsmtbl"].Rows[0]["psmcost"];

相关内容

  • 没有找到相关文章

最新更新