我正在尝试在oledb中插入(ms访问数据库) 名为objectdate的字段是日期/时间
我用来添加参数的代码就是这个,但我收到了错误。
OleDbParameter objectdate = new OleDbParameter("@objectdate", OleDbType.DBDate);
objectdate.Value = DateTime.Now; cmd.Parameters.Add(objectdate);
错误:
标准表达式中的数据类型不匹配。
答案 0 :(得分:10)
OleDB不喜欢datetime参数中的毫秒数。如果你删除毫秒就可以了。另见:How to truncate milliseconds off of a .NET DateTime。
答案 1 :(得分:0)
你可以使用。
OleDbParameter objectdate = new OleDbParameter("@objectdate", DbType.DateTime);
objectdate.Value = DateTime.Now; cmd.Parameters.Add(objectdate);
或使用日期的Ole Automation版本。
OleDbParameter objectdate = new OleDbParameter("@objectdate", DbType.DateTime);
objectdate.Value = DateTime.Now.ToOADate(); cmd.Parameters.Add(objectdate);
或者您可以将日期时间作为文字输入,因为Datetime.ToString()会删除访问无法使用的毫秒数。
cmd.Parameters.AddWithValue("@objectdate", DateTime.Now.ToString());
这应该有效。
答案 2 :(得分:0)
句子:
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中的问题仍然存在