C# 使用OLEDB参数在Access中插入日期/时间值

C# 使用OLEDB参数在Access中插入日期/时间值,c#,ms-access,parameters,oledb,C#,Ms Access,Parameters,Oledb,我正在尝试在oledb(ms access数据库)中插入 名为objectdate的字段是日期/时间 我用来添加参数的代码是这样的,但是我得到了一个错误 OleDbParameter objectdate = new OleDbParameter("@objectdate", OleDbType.DBDate); objectdate.Value = DateTime.Now; cmd.Parameters.Add(objectdate); 错误: 条件表达式中的数据类型不匹配 你可以

我正在尝试在oledb(ms access数据库)中插入 名为objectdate的字段是日期/时间

我用来添加参数的代码是这样的,但是我得到了一个错误

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

条件表达式中的数据类型不匹配

你可以用

   OleDbParameter objectdate = new OleDbParameter("@objectdate", DbType.DateTime);
   objectdate.Value = DateTime.Now; cmd.Parameters.Add(objectdate);
或者使用日期的Ole自动化版本

OleDbParameter objectdate = new OleDbParameter("@objectdate", DbType.DateTime);
       objectdate.Value = DateTime.Now.ToOADate(); cmd.Parameters.Add(objectdate);
或者您可以输入datetime作为文本,因为datetime.ToString()会删除access无法处理的毫秒数

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

这应该可以。OleDB不喜欢datetime参数中的毫秒。如果删除毫秒,它将正常运行。另见:.

这句话:

OleDbParameter objectdate = new OleDbParameter("@objectdate", DbType.DateTime);
在visual basic 2008中不适用,我使用如下方式:

ordeen.Parameters.Add(New OleDb.OleDbParameter("objectdate", DbType.DateTime))
ordeen.Parameters("objectdate").Value=object.text   'but its not run
下一句话只在sqlserver中起作用:

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

Access中的问题仍然存在,但不起作用,它说无法将参数值从DbType转换为DateTime。@robert。。你能把你用过的密码贴出来吗?就在这里的注释中。@robert我想让你用DbType.DateTime替换OleDbType.DBDate代码和我得到的错误:DateTime dateobjectdate=DateTime.Now;OleDbParameter objectdate=新的OleDbParameter(“@objectdate”,DbType.DateTime);Value=dateobjectdate;cmd.Parameters.Add(objectdate);条件表达式中的数据类型不匹配。我也尝试了下面几行,但没有成功,顺便问一下,如何缩进??\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuOleDbParameter objectdate=新的OleDbParameter(“@objectdate”,OleDbType.Date);objectdate.Value=DateTime.Now;cmd.Parameters.Add(objectdate);uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu条件表达式中的数据类型不匹配。OleDbParameter objectdate=新的OleDbParameter(“@objectdate”,DbType.DateTime);objectdate.Value=DateTime.Now.ToString();cmd.Parameters.Add(objectdate);条件表达式中的数据类型不匹配。请不要在标题末尾添加“c”。在上,我们使用标签。我只是将这些精确的语句复制并粘贴到C#(VS 2010)中,它们对我来说效果很好。投票以“主题外(…无法再重现的问题…)结束”。