以下一行:
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?'到'加倍一个明确的 存在转换(你错过了演员吗?)
有什么想法吗?
答案 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);