Insert date / time value in Access using OleDbParameter

I am trying to insert in oledb (MS access database) a field called objectdate - date / time

The code I use to add the parameter is this, but I get an error.

OleDbParameter objectdate = new OleDbParameter("@objectdate", OleDbType.DBDate); objectdate.Value = DateTime.Now; cmd.Parameters.Add(objectdate); 

error:

Data type mismatch in criteria expression.

+4
source share
3 answers

OleDB does not like milliseconds in datetime parameters. If you delete the milliseconds, everything will be fine. See also: https://connect.microsoft.com/VisualStudio/feedback/details/94377/oledbparameter-with-dbtype-datetime-throws-data-type-mismatch-in-criteria-expression .

+7
source

You can use.

  OleDbParameter objectdate = new OleDbParameter("@objectdate", DbType.DateTime); objectdate.Value = DateTime.Now; cmd.Parameters.Add(objectdate); 

or use the Ole Automation date version.

 OleDbParameter objectdate = new OleDbParameter("@objectdate", DbType.DateTime); objectdate.Value = DateTime.Now.ToOADate(); cmd.Parameters.Add(objectdate); 

Or you can enter datetime as a literal, since Datetime.ToString () removes the milliseconds that access cannot work with.

 cmd.Parameters.AddWithValue("@objectdate", DateTime.Now.ToString()); 

this should work.

0
source

Sentence:

 OleDbParameter objectdate = new OleDbParameter("@objectdate", DbType.DateTime); 

not perceived in Visual Basic 2008, I use it like this:

 ordeen.Parameters.Add(New OleDb.OleDbParameter("objectdate", DbType.DateTime)) ordeen.Parameters("objectdate").Value=object.text 'but its not run 

The following sentence only works in sqlserver:

 cmd.Parameters.AddWithValue("@objectdate", DateTime.Now.ToString()); 

the problem in Access continues

0
source

All Articles