select * from (select TOP @pagesize * FROM ( SELECT TOP @pagesize*@cureentpage  * from (select * from [XT_宗地号分配管理] a left join [XT_数据来源项目] b on a.[项目内部ID]=b.[ProjID]) c   ORDER BY c.@sortField @sortDirection1 ) as d   ORDER BY d.@sortField @sortDirection2 ) as e   ORDER BY e.@sortField @sortDirection1
以上是一个分页语句,写在 asp.net后台,还没有正式测试过,想先过来问问以上语句是带参的SQL语句,其中有@pagesize--每页显示数据
@cureentpage--当前页码
@sortField --排序字段
@sortDirection1(ASC或DESC)
@sortDirection2(与@sortDirection1方向相反)由此想通过传入参数达到控制分页,排序方向,和排序字段的效果,
但是我不知道这样写传参会出问题吗,一般传入的参数都是用于关系运算使用的,象这样传一些关键字可行吗?

解决方案 »

  1.   

    你需要通过传递过来的参数,来拼接sql,之后便可以使用了,不过要考虑安全性
      

  2.   

    现在不是拼接字符串,而是通过带参SQL语句,往SQL语句传参来执行,不知道能不能行,我现在是在测试,但是为了节约时间先来问问,不行我就考虑用存储过程了,存储过程里面拼接字符串,肯定行
      

  3.   

    应该是不行的,不是什么都可以用参数的,sql语句中某些位置不能用参数的。
      

  4.   

    试下就知道了
    表名、列名这种是肯定不可以的,像这种数值型的直接拼sql就行了