【发布时间】:2014-08-22 08:12:45
【问题描述】:
我正在尝试将9999999.00000000 存储在 SQL Server 2008 R2 中。但是,我一再面临这个错误
将数值转换为数值数据类型时出现算术溢出错误。
数据库列的类型为DECIMAL(15,8)
请告诉我,如何解决它..
C#代码:
loSqlParameters.Add(new SqlParameter("RUN", loOPERATION_TYPE.RUN.handleDBNull()));
xxxx.Database.ExecuteSqlCommand("SPNAME".getSql(loSqlParameters), loSqlParameters.Cast<object>().ToArray())
SQL Server 存储过程:
CREATE PROCEDURE [dbo].[SPNAME]
@RUN AS DECIMAL(15,8)
AS
BEGIN
INSERT INTO TABLENAME (RUN) VALUES (@RUN)
END
表架构:
Column Name Data Type Allow Nulls
RUN decimal(15,8) yes
【问题讨论】:
-
@a_horse_with_no_name :我认为,这不算数.. 请在 SQL SERVER SELECT CONVERT(DECIMAL(15,8),9999999) 中尝试此操作
-
看起来其他值被拒绝了。请您发布更多代码,展示您如何获取和使用相关价值?
-
@Neil Moss:现在您可以提出建议,如何解决它。如果您需要任何其他详细信息,请告诉我..
-
在 SQL Server 2012 的 T-SQL 中工作得很好......我看不出你在 C# 代码中如何以及在何处设置
SqlParameter.....跨度> -
我认为您应该注意来自 loSqlParameters 的值 - 我希望其中一个超出范围。在自己的操作中执行 'loSqlParameters.Cast
标签: sql sql-server