如何在Access中参数化日期类型,以解决Data type mismatch in criteria expression的问题

 最近的一个项目要使用Access,用惯了SQLServer,一下子回到Access真是有点不太习惯。在使用Access插入日期数据时,总报Data type mismatch in criteria expression错误,虽然我使用了参数化方式传值,可是问题还无法得到解决。

经测试,下面两种方法可以解决这个问题。

方法一:

使用参数化方法时只要使用DateTime.Now.ToString(),把日期类型转换为String类型,就可以了。看来Access还是比较傻的。

方法二:

使用普通的拼SQL方法时,要把‘换成#。因为Access把#视为日期标识符。例如

string sql = "insert into table ([Time]) values(#2009-01-01#)".

 

最后要再说一句,如果insert语句的列中关键字的话,Access会报insert失败,最好的解决方法是把列名用[]括起来。

 

posted @ 2013-11-14 10:04  阿窟窿  阅读(1617)  评论(0编辑  收藏  举报