从数据库获取值时,DBNULL.Value始终返回True

本文关键字:Value 返回 True DBNULL 数据库 获取 | 更新日期: 2023-09-27 18:21:35

我试图避免使用0的数据库null值,如果它不为null,则获取原始值。

但我有一些问题。

这是我的样本代码:

    int Value = 0;
    for(int i = 0; i < tblValue.Rows.Count; i++)
    {
      if (tblValue.Rows[i][""]== DBNull.Value)//Here it always returns true.. even there are values at Position 1 and 
      {
         Value += 0;                        
      }
      else
      {
         Value += Convert.ToInt32(tblValue.Rows[i][""]);
      }
   }

有什么想法吗?

我检查DBNUll Value的方式是否错误?

从数据库获取值时,DBNULL.Value始终返回True

是。Try(DBNull.Value.Equals(tblValue.Rows[i]["]);

http://msdn.microsoft.com/en-us/library/system.dbnull.value.aspx

试试这个:

int Value = 0;
for(int i = 0; i < tblValue.Rows.Count; i++)
{
    if (!IsDBNull(tblValue.Rows[i][""])) 
    {
        Value += Convert.ToInt32(tblValue.Rows[i][""]);
    }
}

如果数据库值为NOT NULL,这只会增加Value变量。