首页 > 解决方案 > 将数据添加到数据库时出现异常 - 将 int 转换为数据类型 numeric 的溢出错误

问题描述

当我将某些数据集添加到表中时,它们会出现异常。数据来自 WEB API,以下数据列也不例外。

"RRP": 2.98074513,
"Cost": 2.533633360

但是当它尝试添加以下数据集时,它会显示 SQL 异常

"RRP": 2.92,
"Cost": 2.4820

和这个 -

"RRP": 4.90,
"Cost": 4.1650

例外是“Core .Net SqlClient 数据提供程序,将 int 转换为数字数据类型的 MessageArithmetic 溢出错误”

SQL 表结构 -

CREATE TABLE [dbo].[DailyConsumptionLogs](
    [UsageLineId] [int] IDENTITY(1,1) NOT NULL,
    [ResourceId] [varchar](500) NOT NULL,
    [RRP] [numeric](15, 13) NOT NULL,
    [Cost] [numeric](15, 13) NULL
) ON [PRIMARY]

在 C# 中执行的插入语句 -

string sql_command = String.Format(@"INSERT INTO DailyConsumptionLogs(
                                                        ResourceId,
                                                        RRP,
                                                        Cost) 
                                  VALUES ('{0}','{1}','{2}')",
                                               item.ResourceId,
                                               item.RRP,
                                               item.Cost);

标签: c#sqlsql-server

解决方案


  1. 你能在赋值行执行后分享 sql_command 的值吗?既正确又不正确。
  2. item.RRP、item.Cost 是如何定义的?
  3. 直接插入数据库有什么异常吗?

    插入 DailyConsumptionLogs(ResourceId, RRP, Cost) 值 (1,4.90,4.1650) 插入 DailyConsumptionLogs(ResourceId, RRP, Cost) VALUES (1,'2.92', '2.4820')


推荐阅读