Intentando insertar DateTime. Ahora en el campo Fecha / Hora aparece el error "No hay coincidencia de tipo de datos"

Si trato de escribir una fecha y hora en un registro en una base de datos de MS-Access de la manera más fácil, como esto

cmd.CommandText = "INSERT INTO [table] ([date]) VALUES (?)";
cmd.Parameters.AddWithValue("?", DateTime.Now);

Obtengo una excepción que dice "No coinciden los tipos de datos en la expresión de criterios".

¿Puede alguien decirme por qué? ¿Qué va mal aquí?

Después de un poco de experimentación, descubrí que puedo hacerlo funcionar si escribo

OleDbParameter parm = new OleDbParameter("?", OleDbType.Date);
parm.Value = DateTime.Now;
cmd.Parameters.Add(parm);

Pero hacerlo así parece menos ordenado, menos sencillo. ¿Por qué es esto necesario? ¿Estoy pasando por alto algo simple?

Respuestas a la pregunta(2)

Su respuesta a la pregunta