1

SQLに10進数(18,2)のデータがあり、.net側でクラスのプロパティをfloatに設定しました。オブジェクトを選択すると、.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) の double または decimal 型。

SQL から .NET 型への相互参照については、こちらを参照してください。

ここで、10 進数列を null にすることができる場合は、null 許容の 10 進数または

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

プロパティを に変更する必要がありますdecimalfloatこれにより、変換が容易になり、またはに伴う丸め誤差から保護されますdouble

この問題に関する広範な議論は次のとおりです: decimal と double

于 2012-10-02T14:38:13.467 に答える
0

.NET クラスのプロパティを 10 進数型に変更するか、設定時に float に明示的に変換する必要があることをお勧めします。どちらを使用するかは実際にはコードに依存しますが、10 進数型を使用することは、それ以上のコンテキストがなくてもより正しいようです。

于 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 に答える