rob*_*ert 5 c# oledb parameters ms-access
我正在尝试在oledb(ms访问数据库)中插入一个名为objectdate的字段是日期/时间
我用来添加参数的代码就是这个,但是我收到了错误.
OleDbParameter objectdate = new OleDbParameter("@objectdate", OleDbType.DBDate);
objectdate.Value = DateTime.Now; cmd.Parameters.Add(objectdate);
Run Code Online (Sandbox Code Playgroud)
错误:
条件表达式中的数据类型不匹配.
Wou*_*out 10
OleDB不喜欢datetime参数中的毫秒数.如果你删除毫秒就可以了.另请参阅:https://connect.microsoft.com/VisualStudio/feedback/details/94377/oledbparameter-with-dbtype-datetime-throws-data-type-mismatch-in-criteria-expression.
你可以用。
OleDbParameter objectdate = new OleDbParameter("@objectdate", DbType.DateTime);
objectdate.Value = DateTime.Now; cmd.Parameters.Add(objectdate);
Run Code Online (Sandbox Code Playgroud)
或使用 Ole Automation 版本的日期。
OleDbParameter objectdate = new OleDbParameter("@objectdate", DbType.DateTime);
objectdate.Value = DateTime.Now.ToOADate(); cmd.Parameters.Add(objectdate);
Run Code Online (Sandbox Code Playgroud)
或者您可以输入日期时间作为文字,因为 Datetime.ToString() 删除了访问无法使用的毫秒。
cmd.Parameters.AddWithValue("@objectdate", DateTime.Now.ToString());
Run Code Online (Sandbox Code Playgroud)
这应该有效。