Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c更新sql server中的日期字段时出错#_C#_Sql_Jquery Ui Datepicker - Fatal编程技术网

C# 使用c更新sql server中的日期字段时出错#

C# 使用c更新sql server中的日期字段时出错#,c#,sql,jquery-ui-datepicker,C#,Sql,Jquery Ui Datepicker,我试图在sql表中插入一个日期(仅日期,而不是日期时间)(数据类型为date) 我使用的是从jquery datepicker获得的'23/07/2013'格式 当我执行以下sql时,我得到以下错误 SQL:更新qmsauditfinddate='23/07/2013',其中auditd=37 请告知 另外值得一提的是,具有精确格式的insert语句工作得很好。只是更新没有 从表面上看,这只是一个格式问题,但“修正格式”是解决这个问题的错误方法;您应该参数化,这样格式就不适用了。日期本身没有“格

我试图在sql表中插入一个日期(仅日期,而不是日期时间)(数据类型为date)

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

当我执行以下sql时,我得到以下错误

SQL:
更新qmsauditfinddate='23/07/2013',其中auditd=37

请告知

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


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

UPDATE qmsAuditFindings SET FindDate=@findDate WHERE AuditID=@auditId
为此,请在.NET代码中获取
DateTime
值,然后执行以下操作:

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();
}
或者更简单地使用“整洁”之类的工具:


您的日期格式不正确,无法插入到sql中。您需要将日期从varchar转换为date。请使用sql Server的转换功能。您的方式工作得很好,谢谢。为了节省时间,我采用了不安全的方式。@ReidGarwin我将其理解为“为了节省时间,我故意做了一些可能导致数据丢失的事情”——但很好:你的系统,你的呼叫
DateTime findDate = ...
int auditId = ...
connection.Execute(
    "UPDATE qmsAuditFindings SET FindDate=@findDate WHERE AuditID=@auditId",
    new { findDate, auditId });