双重难度

时间:2014-07-23 14:45:18

标签: c# .net

以下一行:

String itemid = reader1.IsDBNull(itemid_Index) ? null : reader1.GetString(itemid_Index);

给了我一个运行时错误:

  

无法投射“System.Double”类型的对象。输入' System.String'

我尝试将线路更改为:

Double itemid = reader1.IsDBNull(itemid_Index) ? (Double?)null : reader1.GetDouble(itemid_Index);

但它会产生以下设计时错误:

  

无法隐式转换类型' double?'到'加倍一个明确的   存在转换(你错过了演员吗?)

有什么想法吗?

1 个答案:

答案 0 :(得分:5)

您无法将null分配给double。您需要使用double?

Double? itemid = reader1.IsDBNull(itemid_Index) ? (Double?)null :  reader1.GetDouble(itemid_Index);

或使用其他值表示" null":

Double itemid = reader1.IsDBNull(itemid_Index) ? Double.MinValue : reader1.GetDouble(itemid_Index);