“插入SQL Server中的DECIMAL列时出现”将数据类型double转换为float时出错“

时间:2013-05-24 14:54:11

标签: c# .net sql-server

我有一个带有DECIMAL(10,2)列的SQL Server表。这应该适合99999999.99的数字。但是当我通过以下C#代码插入任何数字>= 1000时,我得到了异常

  

将数据类型double转换为float时出错。

如果插入的值为< 1000,则可以正常工作。顺便说一句,C#值是双倍的。

有人可以解释一下吗?

// ...

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

// ...

Database.ExecuteDataSet(cmd);

同样,goal.AssessmentScaleScoredouble,我将其插入数据库中的DECIMAL(10,2)列。如果值为< 1000,则可以正常工作,但如果>= 1000我得到例外。

我不明白。

1 个答案:

答案 0 :(得分:0)

对不起,我在这里问了这把枪。

原来我是一个白痴,我的存储过程中的参数将其作为DECIMAL(5,2)而不是像DB列一样的DECIMAL(10,2)。

所以我在程序中溢出了参数,而不是数据库中的列。