Se provo a scrivere un datetime a un record in un database MS-Access la via più facile, come questocercando di inserire DateTime.Now nel campo Data/ora dà "Tipo di dati non corrispondente" Errore di
cmd.CommandText = "INSERT INTO [table] ([date]) VALUES (?)";
cmd.Parameters.AddWithValue("?", DateTime.Now);
Ricevo un'eccezione dicendo "Mancata corrispondenza del tipo di dati nell'espressione dei criteri".
Qualcuno può dirmi perché? Cosa va storto qui?
Dopo un po 'di sperimentazione, ho trovato che posso farlo funzionare se scrivo
OleDbParameter parm = new OleDbParameter("?", OleDbType.Date);
parm.Value = DateTime.Now;
cmd.Parameters.Add(parm);
ma farlo in questo modo sembra meno ordinata, meno semplice. Perché è necessario? Sto trascurando qualcosa di semplice?
'date' potrebbe essere una parola chiave qui. Prova 'INSERT INTO table ([date]) VALUES (?)' – LarsTech
@LarsTech Hai ragione sul fatto che sia una parola chiave, ovviamente. Ho aggiornato il codice nella domanda. Ma questa non è la causa del problema. –