sdr is my sqldatareader and I want to check that the curPrice value which is of type decimal is null.
inrec.curPrice = sdr.IsDBNull(7) ? (decimal?)null : sdr.
inrec.curPrice = sdr.GetValueOrDefault(0m)
Since the left side (Price) does not allow for null then you cannot set its value to something that could be null. Therefore, use .GetValueOrDefault(decimal defaultValue) to return a default value when null.
decimal? indicates that it's a nullable decimal; you have to use the Value property to get the actual value (if it exists, determined via HasValue).
I'm assuming curPrice is a non-nullable decimal, in which case you need to also figure out a better value to return than null from the true side of your ternary operator.
either convert curPrice to nullable, or use .Value property of nullable types.
If curPrice is a property of a class then
public decimal? curPrice
{
get;
set;
}
How about converting the decmial? type to decimal ?
You have to have what value you like inrec.curPrice to have when sdr.GetDecmial(7) is null.
inrec.curPrice = sdr.GetDecimal(7) ?? 0M;
I assumed that you would want to use 0 if what's returned was null. If not change 0M to some other decimal value.
--- Update after replay
How about inrec.curPrice = sdr.IsDBNull(7) ? 0M : sdr.GetDecimal(7); ?