-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 に答える