1,在封装Dao层时,写statement 留意占位符,可能不再需要对字符串特别处理。
例如:我们通常需要Select * from where table.id = 'xxxxxxxx' (注意这里对字符串两边加了单引号,不加时,担心为数字引起溢出)
而在sql: Select * from table where table.id = @tableId时,不必对占位符加单引号。
如:Select * from table where table.id =‘ @tableId’(@tableId 所代表的的字符串也不能有引号)
因为:new OleDbParameter("@roleString" , OleDbType.VarChar){ Value = roleString } 站位附替换已经对字符串处理了,至少在Access数据库中如此。
2,ACCESS 在拼写SQL时,多打 【】。
同样一条sql ,直接在ACCESS 运行,无语法错误。但是,从程序去执行,则会报语法错误。估计是有很多关键字。而【】正是解决关键字冲突。
eg:
const string sqlText = "UPDATE operator "
+ " SET password = @newPassword "
+ " WHERE operatorCode = @operatorCode AND password =@oldPassword";
以上sql在程序中会报错,直接运行在Access执行,不会报错。
const string sqlText = "UPDATE operator "
+ " SET [operator].password = @newPassword "
+ " WHERE [operator].operatorCode = @operatorCode AND [operator].password =@oldPassword";
加一个[operator]就不会报错了!
本文分享了在使用ACCESS数据库时编写SQL语句的一些实用技巧,包括如何正确使用参数占位符避免字符串处理问题,以及如何利用[]来规避关键字冲突引发的语法错误。

5138

被折叠的 条评论
为什么被折叠?



