将数据类型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.AssessmentScaleScore
是double
,我将它插入到数据库中的DECIMAL(10,2)
列中。如果值是< 1000
,它工作正常,但如果是>= 1000
,我得到一个异常。
我不明白
对不起,我问得太早了。
原来我是一个白痴,我在存储过程中的参数是DECIMAL(5,2)而不是DECIMAL(10,2),就像DB列一样。
所以我溢出了过程中的参数,而不是DB中的列。