DBNull.Value 和 IsValueNull() 之间的区别
本文关键字:之间 区别 Value IsValueNull DBNull | 更新日期: 2023-09-27 18:36:16
我正在从存储过程获取一些数据到数据集,然后将该数据复制到列表中。数据中有一些 NULL 值,为此我正在使用 DBNULL 进行检查。价值。但是每当涉及到 NULL 值时,它都会给我错误
错误: 指定的强制转换无效。
这就是我将数据从数据集复制到列表的方式。
AreaId = dsTable.SearchedTable[I]["AreaId"] == DBNULL.Value ? 0 : (long)dsTable.SearchedTable[I]["AreaId"];
有时它工作正常,但有时它会给我错误。
当我更改此 DBNULL 时。价值IsAreaIdNull()
。它工作正常。
AreaId = dsTable.SearchedTable[I].IsAreaIdNull() ? 0 : (long)dsTable.SearchedTable[I]["AreaId"];
我很困惑DBNull.Value有什么问题,因为它在其他过程中工作得很好。即使在其他值的相同过程中。我错过了什么??
任何形式的帮助将不胜感激。
看起来你有一个错别字:赋值而不是这里的相等比较:
dsTable.SearchedTable[I]["AreaId"] = DBNULL.Value ? 0 :
(long)dsTable.SearchedTable[I]["AreaId"];
它应该是
dsTable.SearchedTable[I]["AreaId"] == DBNULL.Value ? 0 :
(long)dsTable.SearchedTable[I]["AreaId"];