在封装Dao层时,ACCESS 拼写sql 注意

本文分享了在使用ACCESS数据库时编写SQL语句的一些实用技巧,包括如何正确使用参数占位符避免字符串处理问题,以及如何利用[]来规避关键字冲突引发的语法错误。

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]就不会报错了!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值