双重难度

osh*_*nen 0 .net c#

以下行:

String itemid = reader1.IsDBNull(itemid_Index) ? null : reader1.GetString(itemid_Index);
Run Code Online (Sandbox Code Playgroud)

给我一个运行时错误:

无法将"System.Double"类型的对象强制转换为"System.String"类型

我已经尝试将线路更改为:

Double itemid = reader1.IsDBNull(itemid_Index) ? (Double?)null : reader1.GetDouble(itemid_Index);
Run Code Online (Sandbox Code Playgroud)

但它给出了以下设计时错误:

不能隐式转换类型'double?' '加倍'.存在显式转换(您是否错过了演员?)

有任何想法吗?

D S*_*ley 5

你不能指定null一个double.你要么需要使用double?:

Double? itemid = reader1.IsDBNull(itemid_Index) ? (Double?)null :  reader1.GetDouble(itemid_Index);
Run Code Online (Sandbox Code Playgroud)

或使用其他一些值来表示"null":

Double itemid = reader1.IsDBNull(itemid_Index) ? Double.MinValue : reader1.GetDouble(itemid_Index);
Run Code Online (Sandbox Code Playgroud)