【问题标题】:SQL Script does not insert float value to tableSQL 脚本不向表中插入浮点值
【发布时间】:2017-03-22 22:51:27
【问题描述】:

我在使用 Code-First 方法填充数据库时遇到了问题。我创建了空白迁移,并在 Up() 方法中添加了简单的 SQL 脚本以将具体值插入到表中。不幸的是,IdName 值都被正确插入,但 Value 列的值对于所有行都保持不变并且等于 1。你知道为什么会这样吗? 这些是我使用的 SQL 脚本:

    Sql("INSERT INTO ActivityFactors (Id, Name, Value) VALUES (1, 'Thing1', '1.2')");
    Sql("INSERT INTO ActivityFactors (Id, Name, Value) VALUES (2, 'Thing2', '1.375')");
    Sql("INSERT INTO ActivityFactors (Id, Name, Value) VALUES (3, 'Thing3', '1.55')");
    Sql("INSERT INTO ActivityFactors (Id, Name, Value) VALUES (4, 'Thing4', '1.725')");
    Sql("INSERT INTO ActivityFactors (Id, Name, Value) VALUES (5, 'Thing5', '1.9')");

【问题讨论】:

  • 为什么要用单引号括起来浮点值?
  • 另外,我们能看看“Value”是什么列类型吗?
  • @Pons 我在试验这个 sql 脚本时可能会这样。尽管如此,没有那些单引号,它仍然无法工作。
  • @suecarmol 列是浮点类型
  • 您是否尝试将列类型更改为十进制?

标签: sql ef-code-first


【解决方案1】:

将列名Value 数据类型转换为decimal(18,2)

DECIMAL(p,s):精确数值,精度 p,比例 s。 示例:decimal(5,2) 是一个小数点前 3 位和小数点后 2 位的数字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-12
    • 2018-07-09
    • 2014-09-05
    • 2015-09-25
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 2014-05-31
    相关资源
    最近更新 更多