插入空值或小数

时间:2013-09-23 14:26:18

标签: c# mysql sql sql-server

如果我们使用boolean和SQL bit,您可以指定这样在SQL表上插入..

oHotel.active ? 1 : 0

我有一个类似的情况,但我必须检查一个十进制值

decimal.MaxValue

当我必须插入null时,如果它不是maxValue,我必须插入他的值..

supplement.amount == decimal.MaxValue ? DBNull.Value : supplement.amount

但不起作用,它告诉我无法将空值转换为小数..

有人知道像这样的短暂工作方式吗? sql表中的值可以是null ..

2 个答案:

答案 0 :(得分:4)

first_expressionsecond_expression的类型必须相同,或者从一种类型到另一种类型必须存在隐式转换。MSDN

我认为你不能直接使用DBNULL作为你的第一个表达。

      decimal? nullval = null;  
       or
      decimal? nullval = Convert.ToDecimal(DBNull.Value);
      supplement.amount == decimal.MaxValue ? nullval : supplement.amount

答案 1 :(得分:0)

使用可以为空的小数

decimal? oHotel = null;