您好我正在使用GetDecimal()
,但它在条件表达式中出错。
Data = varCmd.IsDBNull(2) ? null : varCmd.GetDecimal(2)
因为这会导致错误"Type of conditional expression cannot be determined because there is no implicit conversion between string and decimal "
。什么可以用作GetDecimal()
的默认值?有什么帮助吗?
答案 0 :(得分:1)
这里的问题是这一部分:
Data = varCmd.IsDBNull(2) ? null : varCmd.GetDecimal(2)
^-+^ ^----------+-------^
| |
| +-- Decimal type
+-- not a Decimal type
表达式无法编译,因为编译器无法推断为了使其工作,它必须使最后一部分成为可空的Decimal,因此它试图找到一个可以容纳{{1}的类型},登陆null
,然后登陆错误信息。
你需要指定你想要一个可以为空的小数作为结果,假设 string
也是可以为空的十进制。
如果是,这将有效:
Data
如果不是,那么如果列为Data = varCmd.IsDBNull(2) ? (Decimal?)null : varCmd.GetDecimal(2)
(Data
),则需要决定要存储到null
的内容,可能是DBNull
:
0