1

我在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'.

你有什么建议吗?

4

4 回答 4

2

在您的 .NET 代码中为 decimal(18, 2) 输入双精度或十进制类型。

有关从 SQL 到 .NET 类型的交叉引用,请参见此处

现在,如果您的小数列可以为空,请确保您使用可为空的小数或

public decimal? DiscountRate { get; set; }
于 2012-10-02T14:33:20.367 回答
0

我建议您需要将 .NET 类中的属性更改为十进制类型,或者在设置时将其显式转换为浮点数。您使用哪个实际上取决于您的代码,尽管在没有任何进一步上下文的情况下使用十进制类型似乎更正确。

于 2012-10-02T14:35:36.733 回答
0

您可以使用Decimal Type

链接:http: //msdn.microsoft.com/en-us/library/system.decimal.aspx

你可以阅读Specifying Parameter Data Types section

链接:http: //msdn.microsoft.com/en-us/library/yy6y35y8.aspx

于 2012-10-02T14:35:47.153 回答
0

您应该将属性更改为decimal. 它使转换更容易,并保护您免受floatdouble.

这是对该问题的广泛讨论:十进制与双精度

于 2012-10-02T14:38:13.467 回答