我的应用程序中有以下代码行:
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/