【问题标题】:Exception while adding data to to the database -overflow error converting int to data type numeric将数据添加到数据库时出现异常 - 将 int 转换为数据类型 numeric 的溢出错误
【发布时间】:2019-07-29 14:52:59
【问题描述】:

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

"RRP": 2.98074513,
"Cost": 2.533633360

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

"RRP": 2.92,
"Cost": 2.4820

还有这个-

"RRP": 4.90,
"Cost": 4.1650

例外是“Core .Net SqlClient Data Provider, MessageArithmetic overflow error conversion int to data type numeric”

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);

【问题讨论】:

  • 您需要出示您的insert 声明。根据您的值,没有从 intnumeric 的转换。问题可能出在触发器上。
  • @GordonLinoff 我已经用插入语句更新了这个问题。请看一下

标签: c# sql sql-server


【解决方案1】:
  1. 能否分享一下执行后sql_command的值 作业线?正确和错误。
  2. item.RRP、item.Cost 是如何定义的?
  3. 直接插入数据库是否有任何异常?

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

【讨论】:

    【解决方案2】:
    1. 这是使用断点后执行的命令 -

    正确的命令

      INSERT INTO DailyConsumptionLogs(ResourceId,RRP,Cost)VALUES('03E2F28B',2.98074513,2.53363336)
    

    异常命令

    INSERT INTO DailyConsumptionLogs (ResourceId,RRP,Cost)v VALUES ('03E2F28B',4.9,4.165)
    
    1. 两者都定义为numeric(15, 13)数据类型

    2. 是的,直接将其插入数据库,在 SQL 服务器中得到以下异常

    将 int 转换为数字数据类型时出现算术溢出错误。 声明已终止。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-04
      相关资源
      最近更新 更多