0

Access に日付を挿入するのに問題があります。Access のデータ型は Date/Time (一般的な日付) です。今日の日付を挿入して、後で呼び出して何日経過したかを計算できるようにしたい (タイムスパンを使用してそれを行う方法を知っている)。アクセスする日付を保存する正しい方法を教えてください。ありがとう

ps。日付だけで時間はいらない

        DateTime dateNow = DateTime.Now;
        string connString = (@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|HorseDB.mdb");
        OleDbConnection conn = new OleDbConnection(connString);
        conn.Open();
        OleDbCommand cmd = conn.CreateCommand();
        OleDbCommand cmdSelect = conn.CreateCommand();
        cmd.CommandText = @"INSERT INTO [Users] (PaidDate) VALUES  (@PaidDate) WHERE [UserId] = @OrderId";
        cmd.Parameters.AddWithValue("@PaidDate", dateNow);
        cmd.Parameters.AddWithValue("@OrderId", orderId);
        cmd.ExecuteNonQuery();
        conn.Close();
4

3 に答える 3

2

デバイスの DateTime 形式が DB に適していない場合があります。以下の DateTime 形式を使用すると、常に DB で受け入れられます。

以下のように日付パラメーターを渡すように置き換えます。

cmd.Parameters.AddWithValue("@PaidDate", dateNow.ToString("yyyyMMdd"));
于 2013-07-10T08:45:02.187 に答える
0

これを試して:

string connString = (@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|HorseDB.mdb");
        OleDbConnection conn = new OleDbConnection(connString);
        conn.Open();
        OleDbCommand cmd = conn.CreateCommand();
        OleDbCommand cmdSelect = conn.CreateCommand();
        cmd.CommandText = @"INSERT INTO [Users] (PaidDate) VALUES  (@PaidDate) WHERE [UserId] = @OrderId";
        cmd.Parameters.AddWithValue("@PaidDate", Date());
        cmd.Parameters.AddWithValue("@OrderId", orderId);
        cmd.ExecuteNonQuery();
        conn.Close();

Jet 接続文字列を使用しているため、Date() の MSAccess 値を読み取ることができます。これが現在のシステム日付になります。

于 2013-07-09T17:43:20.523 に答える