使用OleDbParameter在Access中插入日期/时间值
本文关键字:日期 时间 插入 OleDbParameter Access 使用 | 更新日期: 2023-09-27 18:09:20
我试图做一个插入在oledb(ms访问数据库)objectdate字段是日期/时间
我用来添加参数的代码是这样的,但是我得到错误。
OleDbParameter objectdate = new OleDbParameter("@objectdate", OleDbType.DBDate);
objectdate.Value = DateTime.Now; cmd.Parameters.Add(objectdate);
错误:
标准表达式中的数据类型不匹配。
OleDB不喜欢在datetime参数中设置毫秒。如果你去掉毫秒,它就会正常运行。参见:如何截断。net DateTime的毫秒数
你可以使用。
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());
句子:
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的问题还在继续
当在.netstandard2.0
中使用OleDb
时,您可以使用仅用键值对添加.AddWithValue
。类型是从value
对象推断出来的:
cmd.Parameters.AddWithValue("@objectdate", DateTime.Now)
不要转换为字符串,因为这会破坏推断类型的能力。