花了大半天转了个aspx项目,把sql转成access,花费时间觉得比较长。总结注意点: 1. module在access中是关键字,在sql中不是。所以主要要加[] 2. datetime在access中数值需要用##括起来 3. like在access查询中用*作为代表0-多个字符,但在oledb command中需要使用%来表示* 4. SqlDbType.DateTime <->OleDbType.DBTimeStamp 5. OleDbCommand 的Parameters使用是按照顺序来的,所以如果想偷懒直接add parameters的话,记得把之前使用过的parameter清空并且在此次语句中按照顺序添加参数。 comm.Parameters.Add("@createdAt", OleDbType.DBTimeStamp).Value = "#" + dt + "#"; 记住这样写也不能保证你的参数取得是对的,一定要按照参数的使用顺序添加! 6. access中不能用!=,不等于需要用<>表示 7. access不支持[tabl1].[dbo].[table1]的用法 8. timeStamp在access中是关键字 9. 将id的类型设置为自动编号。在别的数据库中则是有另外属性设置自动编号。access中直接为类型。
另外附个我忘了的通用sql注意点 SELECT status,COUNT(*) AS cnt FROM bugs WHERE [module]<>'quality/autotest/walle' AND [module] like 'quality/autotest/%' GROUP BY status 使用聚合函数的时候记的要group by啊 |