-3

我正在尝试将日期(仅限日期,而不是日期时间)插入 sql 表(数据类型为日期)。

我正在使用'23/07/2013'从 jquery datepicker 获得的格式。

当我执行以下 sql 时,出现以下错误。

SQL:UPDATE qmsAuditFindings SET FindDate='23/07/2013' WHERE AuditID=37

请指教。

另外值得一提的是,具有确切格式的插入语句工作得很好。只是没有更新。

在此处输入图像描述

4

1 回答 1

1

从表面上看,这只是一个格式问题——但“修复格式”是解决这个问题的错误方法;你应该参数化,这样格式就根本不适用。日期没有“格式”,因此它们只是数字。例如,我们可能应该执行的是:

UPDATE qmsAuditFindings SET FindDate=@findDate WHERE AuditID=@auditId

为此,您可以DateTime在 .NET 代码中获取值,然后执行以下操作:

DateTime findDate = ...
int auditId = ...
using(var cmd = connection.CreateCommand()) {
    cmd.CommandText =
        "UPDATE qmsAuditFindings SET FindDate=@findDate WHERE AuditID=@auditId";
    cmd.Parameters.AddWithValue("findDate", findDate);
    cmd.Parameters.AddWithValue("auditId", auditId);
    cmd.ExecuteNonQuery();
}

或者更简单地使用像“dapper”这样的工具:

DateTime findDate = ...
int auditId = ...
connection.Execute(
    "UPDATE qmsAuditFindings SET FindDate=@findDate WHERE AuditID=@auditId",
    new { findDate, auditId });
于 2013-07-10T11:12:31.240 回答