DateTime値をDbParameterとしてクエリに渡す際に問題が発生しました。DateTime値の時間部分が削除されているようです。
C#のサンプルコードは次のとおりです。
DbProviderFactory _factory = OleDbFactory.Instance;
DbCommand cmd = _factory.CreateCommand();
cmd.CommandText = "INSERT INTO SomeTable (SomeDateField) VALUES (?)";
DbParameter p = _factory.CreateParameter();
p.ParameterName = ""; // Not necessary
p.Value = DateTime.Now; // assume Time != 00:00:00
p.DbType = DbType.Date; // DateTime and DateTime2 don't work
cmd.Parameters.Add(p);
私の問題は、Dateパラメーターがその時間部分でAccessに到達していないようであり、SomeDateFieldが常に00:00:00を時間として持っていることです。
私は次のようなことをしたくありません:
cmd.CommandText = "INSERT INTO SomeTable (SomeDateField) VALUES (#" + aDateTimeString + "#)";