【问题标题】:Send current date to datetime mysql field from C# [duplicate]从 C# 将当前日期发送到 datetime mysql 字段 [重复]
【发布时间】:2018-04-08 23:55:42
【问题描述】:

好的,很抱歉这个措辞不好的问题。显然我没有经验,也不想浪费任何人的时间。

我有一个 C# 应用程序,我需要更新 last_modified 字段 使用 DateTime.Now,但我不断收到格式错误。

我正在使用 MVC、C# 并连接了现有的 MySQL 数据库。

我的模型是 公共部分类用户 { 公共 int id_user { 获取;放; } 公共字符串 first_name { 获取;放; } 公共日期时间 last_modified { 获取;放; } }

我有更新值的方法

    public void Update(user aUser)
    {
    user target = db.users.Find(aUser.id_user)
    if (target != null)
                {
                    target.id_user = aUser.id_user;
                    target.first_name = aUser.first_name;
                    target.last_modified = DateTime.Now;
                 }
    }

【问题讨论】:

  • 日期没有格式。 DON'T 将日期转换为字符串。使用参数化查询并将日期时间值作为日期类型参数传递。
  • 什么错误?哪一行抛出错误?发生这种情况时的价值观是什么?您显示的代码行似乎不太可能产生格式错误。为什么要涉及字符串格式?
  • 我在数据库中有一个日期时间字段。我正在更新这个字段,但是 mysql 日期格式是 yyyy-MM-dd HH:mm:ss。当我直接从 DateTime.Now 将数据发送回数据库时,我收到一条错误消息,指出数据无效,因为格式为 dd/mm/yyyy。
  • @lonelySiren 我会重复一遍。日期完全没有格式。它们是二进制值。 字符串可以。当你想传递日期时,只是不要使用字符串。也不要使用字符串连接。使用参数化查询。谷歌Bobby Tables 了解原因。字符串连接不仅会导致转换错误,还会导致 SQL 注入攻击发生
  • @lonelySiren 您在 cmets 中发布的内容也与查询无关。如果查询有问题,请发布 查询 和执行查询的代码

标签: c# mysql datetime


【解决方案1】:

您可以在参数化查询中使用以下语句:

UPDATE table_name
SET date= CURRENT_TIMESTAMP
WHERE ID=?;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-29
    • 2010-11-11
    • 2013-08-22
    • 2016-09-29
    • 1970-01-01
    • 2012-12-05
    • 2017-06-14
    • 2019-07-11
    相关资源
    最近更新 更多