我正在尝试从我正在寻找的标准中读取数据库中我知道的值为null。
所以我有这种检查方法:ld.Percentage = reader["DataWin3Data"] != DBNull.Value ? Convert.ToDouble(reader["DataWin3Data"]) : double.MinValue;
我之前使用过它,一个字段可以为null并且它没有问题。我不完全确定在这种情况下应该怎么做才能解决它。我在下面列出了我的相关代码。当存在空值时,如何更改我当前正在执行的操作没有出现此错误?
ld.Percentage = reader["DataWin3Data"] != DBNull.Value ? Convert.ToDouble(reader["DataWin3Data"]) : double.MinValue;
ld.TotalCases = reader["DataWin8Data"] != DBNull.Value ? Convert.ToInt32(reader["DataWin8Data"]) : int.MinValue;
ld.TotalPercentage = reader["DataWin7Data"] != DBNull.Value ? Convert.ToDouble(reader["DataWin7Data"]) : double.MinValue;
答案 0 :(得分:1)
这个怎么样?
ld.Percentage = reader["DataWin3Data"] == DBNull.Value
? double.MinValue : (double)reader["DataWin3Data"];
我已经多次使用这样的代码而没有问题。你确定你总是在读同一个你也在检查null的字段吗?
此外,如果您实际没有转换,请不要使用Convert
。这应该是一个演员(就像在我的例子中)。
如果这不起作用,可能是你在做一些奇怪的数据。也许在路上有些序列化?试试这个:
ld.Percentage = reader["DataWin3Data"] is DBNull
? double.MinValue : (double)reader["DataWin3Data"];