sql server百万数据分页存储过程

百万数据存储过程主体 创建存储过程

CREATE PROC [dbo].[Common_PageList]
(
@tab nvarchar(max),---表名
@strFld nvarchar(max), --字段字符串
@strWhere nvarchar(max), --where条件 
@PageIndex int, --页码
@PageSize int, --每页容纳的记录数
@Sort VARCHAR(255), --排序字段及规则,不用加order by
@IsGetCount bit  --是否得到记录总数,1为得到记录总数,0为不得到记录总数,返回记录集
)
AS
declare @strSql nvarchar(max)
set nocount on;
if(@IsGetCount = 1)
begin
 set @strSql='SELECT COUNT(0) FROM ' + @tab + ' WHERE ' + @strWhere
end
else
begin
  set @strSql=' SELECT * FROM (SELECT ROW_NUMBER() 
  OVER(ORDER BY ' + @Sort + ') AS rownum, ' + @strFld + ' FROM ' + @tab + ' where ' + @strWhere + ') AS Dwhere
  WHERE rownum BETWEEN ' + CAST(((@PageIndex-1)*@PageSize + 1) as nvarchar(20)) + ' and ' + cast((@PageIndex*@PageSize) as nvarchar(20))
end

exec (@strSql)

set nocount off;


数据库执行存储过程


use mysql
declare @tab nvarchar(max)---表名
set @tab='table1'
declare @strFld nvarchar(max) --字段字符串
set @strFld='*'
declare @strWhere nvarchar(max) --where条件 
set @strWhere='id>0'
declare @PageIndex int --页码
set @PageIndex=1
declare @PageSize int --每页容纳的记录数
set @PageSize=10
declare @Sort VARCHAR(255) --排序字段及规则,不用加order by
set @Sort='id asc'
declare @IsGetCount bit  --是否得到记录总数,1为得到记录总数,0为不得到记录总数,返回记录集 
set @IsGetCount=0


exec Common_PageList @tab,@strFld,@strWhere,@PageIndex,@PageSize,@Sort,@IsGetCount

,net调用存储过程

        SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["connstring"]);
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                using (conn)
                {
                    conn.Open();
                    SqlDataAdapter sda = new SqlDataAdapter("Common_PageList", conn);//创建适配器

                    sda.SelectCommand.CommandType = CommandType.StoredProcedure;//指示为存储过程

                    sda.SelectCommand.Parameters.AddWithValue("@tab", "table1");//给存储过程参数赋值
                    sda.SelectCommand.Parameters.AddWithValue("@strFld", "*");
                    sda.SelectCommand.Parameters.AddWithValue("@strWhere", "id>0");
                    sda.SelectCommand.Parameters.AddWithValue("@PageIndex", 1);
                    sda.SelectCommand.Parameters.AddWithValue("@PageSize", 10);
                    sda.SelectCommand.Parameters.AddWithValue("@Sort", "id asc");
                    sda.SelectCommand.Parameters.AddWithValue("@IsGetCount", 0);

                    DataSet ds = new DataSet();
                    sda.Fill(ds);//填充数据

                    Repeater1.DataSource = ds;
                    Repeater1.DataBind();

                }
            }
        }




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值