Я пытаюсь вставить System.DateTime в базу данных Access, используя параметризованный OleDbCommand в C #.Тем не менее, он выдает исключение Data type mismatch in criteria expression
.
Вот мой код:
string statement = "INSERT INTO Log (SCTID, LogDateTime, Type, Message, Visible)" +
"VALUES (?, ?, ?, ?, ?);";
OleDbCommand insertCommand = new OleDbCommand(statement, connection);
// Add parameters to the command
insertCommand.Parameters.AddWithValue("@SCTID", OleDbType.Integer).Value = SCTID;
insertCommand.Parameters.AddWithValue("@LogDateTime", OleDbType.DBTime).Value = dateTime;
insertCommand.Parameters.AddWithValue("@Type", OleDbType.Integer).Value = (int)logType;
insertCommand.Parameters.AddWithValue("@Message", OleDbType.BSTR).Value = message;
insertCommand.Parameters.AddWithValue("@Visible", OleDbType.Boolean).Value = visible;
insertCommand.ExecuteNonQuery();
Когда я закомментирую строку LogDateTime
, остальное работает.Моя проблема в том, что независимо от того, что я использую для типа DateTime, он не работает.Я пробовал:
OleDbType.Date, OleDbType.DBDate, OleDBType.DBTimeStamp, DbType.Date, DbType.DateTime, DbType.DateTime2
Я также пробовал:
insertCommand.Parameters.AddWithValue("@LogDateTime", dateTime);
Это тоже не работает.Ничто из того, что я прочитал через Google или ТАК, не работает.Кроме того, обратите внимание, что мне нужны и дата, и время, а не только одна дата.