最近有个小项目,用了两个星期的Access,步步惊心,一步一个坑,下面来数一数
1、命名参数问题
按照官方文档的说明,OleDb 和 Odbc 类型,其实没有命名参数这一说法,只有位置参数,也就是应该用问号(“?”)作为占位符,那么问题就来了:
命名参数必须要按照sql语句里面出现的顺序给定,顺序错误就会悲剧。
2、传递时间类型
DateTime类型是个很特殊的类型。
1、如果你的sql是拼的,那么记住在表示时间的字符串两边加上井号(#)号,不要加单引号(')
2、如果你的sql用配置参数传递的,那么有两种方法我亲测有效,方法一:请用toString()方法将时间类型转换为字符串类型,
3、方法二:请将DbDataParameter.DbType设置为Object类型
相关异常:标准表达式中数据类型不匹配。
3、保留关键词
更新操作的时候,有一个用户表的数据死活更新不了,后来才发现,貌似从Access 2007开始,password是个保留关键词,处理方式如下:字段名写成[password]
相关异常: UPDATE 语句的语法错误。
4、模糊查询
在access里面,%% 表示任意匹配 %%aaa%%表示包含aaa 。
参考资料: