0

金曜日だから脳が誤作動したに違いない。

DateTime 型の列を古き良き OleDb で更新しようとしていますが、更新は常に実行されます (同じ行の他の列の値を変更します) が、何らかの理由で DateTime 列が null に設定されることを拒否します。

列では null が許可されます。

OleDbParameter コンストラクターを使用してコマンドに新しいパラメーターを追加していますが、値が null の場合に実行を拒否するパラメーターでしょうか?

パラメータとしてSqlDateTime.Null、DbNull.Value、およびnullを試しましたが、値をnullに設定するものは何もありません。そのままにしておくか、最愛の1900-00-01に設定します。

ヒントやコツをいただければ幸いです

4

2 に答える 2

4

DBNull.Value を使用したい

前のコメントと同じように、次のようなことができますDateTime? myDate = null;

于 2011-12-16T16:48:55.653 に答える
0

問題は、特定のアクションを実行しない限り、DateTime が DateTime.MinValue として表されることです。したがって、DB に null が必要な場合は、値をテストし、MinValue の場合は代わりに DBNull を送信する必要があります。

実際にはメソッドを使用して、日付が最小値の場合は日時または null として値を取得します。

function object DateToDB(DateTime testDate) 
{
    if (testDate == DateTime.MinValue)
    {
        return DBNull.Value;
    } else 
    {
        return testDate;
    }
}

次に、このメソッドを使用してパラメーター値を割り当てます。

于 2011-12-16T17:05:20.013 に答える