【发布时间】: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 中发布的内容也与查询无关。如果查询有问题,请发布 查询 和执行查询的代码