c# - 值必须是小于无穷大的数字

标签 c#

我的应用程序中有以下代码行:

packsize.CompanyPrice = (decimal)Reader["CompanyPrice"];

但它会引发错误从数字转换时,该值必须是小于无穷大的数字

我已将数据库数据类型设置为 double ,但在我的应用程序中它是十进制的。会导致这个问题吗?

或者我在这里遗漏了什么??

最佳答案

我认为您正在尝试转换 DBNull 值,因此出现错误

如果您可以为 DBNull 添加对 Reader["CompanyPrice"] 的检查,那就太好了

if(Reader["CompanyPrice"] != DBNull.Value)
{
}

这样的事情可以重现您的问题

object obj = DBNull.Value;
decimal somdec = (decimal)obj; // Specified cast is not valid

编辑

如果它是 double 的盒装表示形式,那么您需要将其转换回 double,然后转换为 decimal。

关于c# - 值必须是小于无穷大的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11932489/

相关文章:

c# - 使用虚拟路径提供程序和 Amazon S3 SDK 上传文件

c# - XML Linq 新手问题

c# - 将 selectlistitems 绑定(bind)到 viewmodel 的正确方法

c# - 如何强制 Equals 返回 false 而不是 Null 引用异常?

c# - 如何在 C# 中重现适合 PHP SHA512 的 SHA512 散列?

c# - 如何修复 Mongo 中的 retryWrites?

c# - 用 IronPython 对象替换 .NET 对象实例

c# - 有没有办法对连接到 Azure SignalR 的用户进行身份验证?

c# - 我们目前无法使用您的 PayPal 帐户处理您的付款

c# - .NET 控制台窗口