我从存储过程到DataSet获取一些数据,然后将该数据复制到List。数据中有一些NULL值,我正在使用DBNULL.Value进行检查。但是无论什么时候出现NULL值,它都会给我错误
错误:指定的演员表无效。
这就是我将数据从DataSet复制到List的方式。
AreaId = dsTable.SearchedTable[I]["AreaId"] == DBNULL.Value ? 0 : (long)dsTable.SearchedTable[I]["AreaId"];
有时它工作正常,但有时它会给我错误。
当我将 DBNULL.Value 更改为IsAreaIdNull()
时。它工作正常。
AreaId = dsTable.SearchedTable[I].IsAreaIdNull() ? 0 : (long)dsTable.SearchedTable[I]["AreaId"];
我很困惑 DBNull.Value 出了什么问题,因为它在其他程序中运行得很好。即使在相同的程序中其他值。我错过了什么?
任何形式的帮助都将受到赞赏。
答案 0 :(得分:2)
看起来你有一个拼写错误:赋值而不是相等比较:
dsTable.SearchedTable[I]["AreaId"] = DBNULL.Value ? 0 :
(long)dsTable.SearchedTable[I]["AreaId"];
应该是
dsTable.SearchedTable[I]["AreaId"] == DBNULL.Value ? 0 :
(long)dsTable.SearchedTable[I]["AreaId"];