日期:2014-05-18  浏览次数:20414 次

每个程序员都会遇到的问题,不得不讨论,关于Sql语句的拼接
我在网上搜了一天,发现网上的通用存储过程分页,都要拼接Where语句,不管是存储过程还是Sql语句,有拼接,就有注入的危险,如果把分页存储过程都用Sql参数实现,好像也不太可能,不知道大家是怎么做的,如何避免拼接Sql,如果都用.net的SqlCommand.Parameter.add,这样来传参数,自然是可以避免,但是就不能用通用的存储过程分页了。

------解决方案--------------------
To:pt1314917(背着灵魂漫步)

您的存储过程只针对主键或唯一性列是单一列的情况,如果主键或唯一性列是多列的情况,您的存储过程做不到。

不过我非常肯定您的做法,不过我做的更彻底,针对每个要分页的表,我都写一个单一的存储过程,连EXEC(@SQL)都不用,这样效率更高。