首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不能隐式转换类型‘十进制?’到“十进制”

不能隐式转换类型‘十进制?’到“十进制”
EN

Stack Overflow用户
提问于 2012-05-09 20:50:11
回答 3查看 39.2K关注 0票数 13

sdr是我的sqldatareader,我想检查十进制类型的curPrice值是否为null。

inrec.curPrice = sdr.IsDBNull(7) ? (decimal?)null : sdr.GetDecimal(7);

这是我收到的错误消息:

不能隐式转换类型‘十进制?’到“十进制”存在显式转换(是否缺少强制转换?)

我哪里出问题了,请有人告诉我。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-09 21:00:11

要么将curPrice转换为可空,要么使用可空类型的.Value属性。

如果curPrice是类的一个属性,那么

代码语言:javascript
运行
复制
public decimal? curPrice
{
   get;
   set;
}
票数 13
EN

Stack Overflow用户

发布于 2016-09-29 18:58:05

代码语言:javascript
运行
复制
inrec.curPrice = sdr.GetValueOrDefault(0m)

由于左侧(Price)不允许null,所以不能将其值设置为可能是null的值。因此,使用.GetValueOrDefault(decimal defaultValue)null时返回默认值。

票数 6
EN

Stack Overflow用户

发布于 2012-05-09 21:02:19

如何将decmial?类型转换为decimal

inrec.curPrice为null时,您必须拥有喜欢的sdr.GetDecmial(7)值。

代码语言:javascript
运行
复制
inrec.curPrice = sdr.GetDecimal(7) ?? 0M;

如果返回的内容为null,我假设您希望使用0。如果没有,则将0M更改为其他十进制值。

--重播后的最新情况

inrec.curPrice = sdr.IsDBNull(7) ? 0M : sdr.GetDecimal(7);怎么样?

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10523885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档