我在sql中有十进制(18,2)数据,我在.net端设置了类的属性。当我选择对象时,.net 返回如下错误:
The 'DiscountRate' property on 'Product' could not be set to a 'Decimal' value. You must set this property to a non-null value of type 'Single'.
你有什么建议吗?
我在sql中有十进制(18,2)数据,我在.net端设置了类的属性。当我选择对象时,.net 返回如下错误:
The 'DiscountRate' property on 'Product' could not be set to a 'Decimal' value. You must set this property to a non-null value of type 'Single'.
你有什么建议吗?
在您的 .NET 代码中为 decimal(18, 2) 输入双精度或十进制类型。
有关从 SQL 到 .NET 类型的交叉引用,请参见此处。
现在,如果您的小数列可以为空,请确保您使用可为空的小数或
public decimal? DiscountRate { get; set; }
我建议您需要将 .NET 类中的属性更改为十进制类型,或者在设置时将其显式转换为浮点数。您使用哪个实际上取决于您的代码,尽管在没有任何进一步上下文的情况下使用十进制类型似乎更正确。
您可以使用Decimal Type
链接:http: //msdn.microsoft.com/en-us/library/system.decimal.aspx
你可以阅读Specifying Parameter Data Types section
您应该将属性更改为decimal
. 它使转换更容易,并保护您免受float
或double
.
这是对该问题的广泛讨论:十进制与双精度