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

本文关键字:Server SQL 插入 DECIMAL 出错 double 数据类型 转换 float | 更新日期: 2023-09-27 18:15:17

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

将数据类型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.AssessmentScaleScoredouble,我将它插入到数据库中的DECIMAL(10,2)列中。如果值是< 1000,它工作正常,但如果是>= 1000,我得到一个异常。

我不明白

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

对不起,我问得太早了。

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

所以我溢出了过程中的参数,而不是DB中的列。