【问题标题】:c# asp.net MVC5 model can not insert 4 decimal pointsc# asp.net MVC5模型不能插入4个小数点
【发布时间】:2021-06-25 05:55:35
【问题描述】:

例如通过手动查询插入 (0.1234) 很好,但是在使用 mvc5 表单从表单中插入值时。

1- 数据库中列的配置是:

    RateBuy (decimal(18, 4))

2- 模型的设置类似于,同时从 from 插入数据

    [DisplayFormat(DataFormatString = "{0:n4}", ApplyFormatInEditMode = true)]
    public decimal RateBuy { get; set; }

结果是0.1200在数据库中

3- 模型的设置类似于,同时从 from 插入数据

       [DisplayFormat(DataFormatString = "{0:0.0000}", ApplyFormatInEditMode = true)]

结果是0.1200在数据库中

保存数据的代码:

 public ActionResult SaveNew(Rate tbl)
        {
            Rate t = new Rate ();
            t.RateBuy = tbl.RateBuy;
            dbConnection.Entry(t).State = System.Data.Entity.EntityState.Added;
            dbConnection.SaveChanges();
            return View();

        }

任何解决方案都让人头疼......

【问题讨论】:

  • 您显示的代码与数据库无关。
  • 有一个更新检查,但数据库也必须支持十进制
  • 还是没有数据库相关的代码。
  • 这里我们要求数据库中有小数点(18, 4),以支持4个点
  • 因此请检查您在 EF 中为该列指定了哪些属性(这与您在数据库中指定的属性不同)。它们应该匹配。

标签: asp.net model-view-controller database-design model asp.net-mvc-5


【解决方案1】:

为此,我已将小数更改为浮动并在模型中使用它

        [RegularExpression(@"^\d+.\d{0,4}$", ErrorMessage = "Rate can't have more than 4 decimal places")]
        public float RateBuy { get; set; }

【讨论】:

  • 使用float 来赚钱将转到get you in trouble。改为在 EF 属性中修复您的 decimal 定义。
猜你喜欢
  • 1970-01-01
  • 2021-09-07
  • 2014-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多