有没有办法在C#中从DB.Null转换为十进制?
喜欢
Object[] returnvalue = new Object[1];
returnvalue[0] = null;
returnvalue[0] = Convert.ToDecimal(returnvalue[returnvalue.Length - 1]);
Run Code Online (Sandbox Code Playgroud)
虽然CLR说DBNull.Value不能被类型化.我还想知道那里
任何工作?提前致谢
你怎么期望投射null任何东西?它是空的,没什么,虚无...
这就是说,你最好的选择将是检查DBNull(或者null在上述情况下),并使用/返回/不管default(decimal)代替,但null并DBNull都有从仅仅是一种默认值的显著语义差别; 他们没有价值,所以这可能不是你想做的.
DBNull和之间有很大的不同null; 你的例子只显示null......
但回答; 不是真的......你给它什么价值?
您可以测试并使用默认值,或使用Nullable<decimal>(aka decimal?):
有null(不DBNull)
decimal? valOrNull = (decimal?)returnvalue[0];
Run Code Online (Sandbox Code Playgroud)
或考虑DBNull到:
object val = returnvalue[0];
decimal? valOrNull = (val == null || val is DBNull) ? (decimal?)null
: (decimal?)val; // or convert if it is a string etc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22606 次 |
| 最近记录: |