將DateTime值作爲DbParameter傳遞給查詢時遇到問題。看起來時間部分的DateTime值被剝離了。將DateTime值作爲參數傳遞給OleDbCommand
這裏是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);
我的問題是,日期參數似乎沒有達到訪問與它的一部分時間和SomeDateField總是00:00:00的時間。
我不想做這樣的事情:
cmd.CommandText = "INSERT INTO SomeTable (SomeDateField) VALUES (#" + aDateTimeString + "#)";
什麼是數據類型數據庫表中的列的列?另外你是什麼意思'DbType.DateTime'不起作用? –
當我使用DbType.DateTime和DbType.DateTime2時,執行命令時出現'條件表達式中的數據類型不匹配'異常。 –
我使用Access作爲後端,因此列數據類型是Date,但它與.NET中的DateTime等效,它也可以包含時間部分。 –