如何在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失败,最好的解决方法是把列名用[]括起来。