2

列を持つ SQL Server テーブルがありDECIMAL(10,2)ます。これは までの数に適合するはず99999999.99です。しかし>= 1000、次の C# コードを使用して数値を挿入すると、例外が発生します。

データ型 double から float への変換中にエラーが発生しました。

挿入される値が の場合、正常< 1000に動作します。ちなみに、C# の値は double です。

誰でもこれを説明できますか?

// ...

Database.AddInParameter(cmd, "@AssessmentScaleScore", DbType.Double,
                        (goal.StudentAssessmentInstanceID > 0
                         && goal.AssessmentScaleScore > 0)
                             ? goal.AssessmentScaleScore
                             : System.Data.SqlTypes.SqlDouble.Null);

// ...

Database.ExecuteDataSet(cmd);

繰り返しますが、goal.AssessmentScaleScoreはであり、DBdoubleの列に挿入しています。DECIMAL(10,2)値が の場合は正常< 1000に動作しますが、その場合>= 1000は例外が発生します。

理解できません。

4

1 に答える 1

0

申し訳ありませんが、ここでこれを尋ねる銃を飛ばしました。

私は馬鹿で、ストアド プロシージャのパラメータは、DB 列のように DECIMAL(10,2) ではなく DECIMAL(5,2) になっています。

そのため、DBの列ではなく、プロシージャのパラメーターをオーバーフローしていました。

于 2013-05-24T14:59:09.180 に答える