C# 使用OLEDB参数在Access中插入日期/时间值
我正在尝试在oledb(ms access数据库)中插入 名为objectdate的字段是日期/时间 我用来添加参数的代码是这样的,但是我得到了一个错误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); 错误: 条件表达式中的数据类型不匹配 你可以
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)中,它们对我来说效果很好。投票以“主题外(…无法再重现的问题…)结束”。