c#中IsDbNull的内联检查

本文关键字:检查 IsDbNull | 更新日期: 2023-09-27 18:08:56

如何写下面这行:

 document.Total = reader.IsDBNull(reader.GetOrdinal("Total")) == true : 0.0m ? (decimal?)reader["Total"];

我得到的错误是不能将类型从bool转换为decimal?

c#中IsDbNull的内联检查

您不小心翻转了?:。应该是:

document.Total = reader.IsDBNull(reader.GetOrdinal("Total")) == true ? 0.0m : (decimal?)reader["Total"];

只是为了增加一个更短的方式来处理DBNull.Value和DataReaders

考虑使用

document.Total = (reader["Total"] as decimal?) ?? 0.0m;