asp.net 存储过程分页字段排序
最近在asp.net 用到的sqlserver存储过程分页中显示数据时遇到关于排序问题。
网上的一些分页存储过程只支持排序列为int 类型,对于实际开发中很多时候都需要对DateTime类型,varchar类型进行排序。
下面分享一下可以支持任意数据类型的列进行排序的存储过程。
Create PROCEDURE sp_viewByPage
@TblName varchar(50), — 表名
@FldName varchar(50), — 排序列
@PageSize int, – 每页记录数
@PageIndex int, – 指定页
@strWhere varchar(1000), – 查询条件
@OrderType bit = 0 — 设置排序类型, 非 0 值则降序
AS
Begin
Declare @Sql nvarchar(1000)
if @strWhere !=” –是否where
if @OrderType =’0′
begin
Set @Sql=’SELECT SerialNumber,* from (SELECT *,ROW_NUMBER() OVER (ORDER BY ‘+@FldName +’ ASC) AS SerialNumber from ‘+@TblName +’ where ‘+@strWhere+’) AS T WHERE T.SerialNumber > ‘+str((@PageIndex-1) * @PageSize)+’ and T.SerialNumber <= ‘ + str(@PageIndex * @PageSize)
Exec sp_executesql @Sql
end
else
begin
Set @Sql=’SELECT SerialNumber,* from (SELECT *,ROW_NUMBER() OVER (ORDER BY ‘+@FldName +’ DESC) AS SerialNumber from ‘+@TblName +’ where ‘+@strWhere+’) AS T WHERE T.SerialNumber > ‘+str((@PageIndex-1) * @PageSize)+’ and T.SerialNumber <= ‘ + str(@PageIndex * @PageSize)
Exec sp_executesql @Sql
end
else
if @OrderType =’0′
begin
Set @Sql=’SELECT SerialNumber,* from (SELECT *,ROW_NUMBER() OVER (ORDER BY ‘+@FldName +’ ASC) AS SerialNumber from ‘+@TblName +’) AS T WHERE T.SerialNumber > ‘+str((@PageIndex-1) * @PageSize)+’ and T.SerialNumber <= &l
相关文档:
Controller needs to derive from Mvc.Controller
each controller function is assiaciaed with a default view by name
controller and viewer can exchange data by viewdata
use HTML.ActionLink to add a link on html page
a url is corresponding to a action method
in view, using HTML.BeginForm() will gen ......
在开发中保持良好的编码规范是十分重要的。我所采用的新的VB.net/ASP.NET编码规范,是一种被证明能明显改善代码可读性,并有助于代码管理、分类的编码规范。采用这种编码规范,能避免如匈牙利命名法带来的繁长前缀,便于记忆变量的用途。下面的介绍这种编码规范。
一、类型级单位的命名
1、类
□以Class声明的类,都必须 ......
1.什么是cookie?
cookie 是一小段文本信息,伴随用户请求,在web服务器和浏览器之间传递。用户每次访问站点的时候,
web应用程序都可以读取cookie包含的信息。
假设在用户请求您的网站的某个页面时,您的应用程序不仅是返回请求的页面。同时也返回一个包含日期
和时间的cookie。用户的浏览器在获得页面的同时也获得了 ......