在C#中内联检查IsDbNull

时间:2015-08-20 22:49:14

标签: c#

如何编写以下行:

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

我得到的错误是无法将类型从bool转换为十进制?

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:1)

只是添加一种更短的方式来处理DBNull.Value和DataReaders。

考虑使用

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