![](/img/trans.png)
[英]Arithmetic overflow error converting varchar to data type numeric in SQL Server
[英]Store “9999999.00000000” in SQL Server 2008 R2: Arithmetic overflow error converting numeric to data type numeric
我试图在SQL Server 2008 R2中存储9999999.00000000
。 但是,我一再面对这个错误
算术溢出错误将数字转换为数据类型数字。
数据库列的类型为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
在SSMS中执行时,这在SQL2008R2中正常工作。 如果运行SQL事件探查器并捕获应用程序提交的SQL文本,则可以检查存储过程调用,包括传递给过程的参数。 发送的参数值可能不是您期望发送的参数值。
我的SQL测试代码:
CREATE TABLE MyTable
(
Run decimal(15, 8) NULL
);
GO
CREATE PROCEDURE dbo.spName
@Run AS DECIMAL(15,8)
AS
BEGIN
INSERT INTO MyTable(Run) VALUES(@Run)
END;
GO
EXEC dbo.spName 9999999.00000000;
GO
SELECT *
FROM MyTable;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.