用存储过程实现怎么样 EXEC spAll_ReturnRows 'SELECT * FROM 表名', 页号, 返回记录数, '主键', '排序字段' 说明:[百万级]通用存储过程.分页存储过程..返回指定返回条数、指定页数的记录 CREATE PROCEDURE dbo.spAll_ReturnRows ( @SQL nVARCHAR(4000), @Page int, @RecsPerPage int, @ID VARCHAR(255), @Sort VARCHAR(255) ) ASDECLARE @Str nVARCHAR(4000)SET @Str='SELECT TOP '+CAST(@RecsPerPage AS VARCHAR(20))+' * FROM ('+@SQL+') T WHERE T.'+@ID+' NOT IN (SELECT TOP '+CAST((@RecsPerPage*(@Page-1)) AS VARCHAR(20))+' '+@ID+' FROM ('+@SQL+') T9 ORDER BY '+@Sort+') ORDER BY '+@SortPRINT @StrEXEC sp_ExecuteSql @Str GO
虽然是winform下的,当方法可以
pagesize = n;在
private void dg1_PageIndexChanged(object source,
System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dg1.CurrentPageIndex = e.NewPageIndex;
this.LoadData();
}
EXEC spAll_ReturnRows 'SELECT * FROM 表名', 页号, 返回记录数, '主键', '排序字段'
说明:[百万级]通用存储过程.分页存储过程..返回指定返回条数、指定页数的记录
CREATE PROCEDURE dbo.spAll_ReturnRows
(
@SQL nVARCHAR(4000),
@Page int,
@RecsPerPage int,
@ID VARCHAR(255),
@Sort VARCHAR(255)
)
ASDECLARE @Str nVARCHAR(4000)SET @Str='SELECT TOP '+CAST(@RecsPerPage AS VARCHAR(20))+' * FROM ('+@SQL+') T WHERE T.'+@ID+' NOT IN
(SELECT TOP '+CAST((@RecsPerPage*(@Page-1)) AS VARCHAR(20))+' '+@ID+' FROM ('+@SQL+') T9 ORDER BY '+@Sort+') ORDER BY '+@SortPRINT @StrEXEC sp_ExecuteSql @Str
GO
{
this.DataGrid1.CurrentPageIndex=this.DataGrid1.NewPageIndex;
this.DataGrid1.DataBind();
}
参考:http://support.microsoft.com/default.aspx?scid=kb;zh-cn;307710
我用的是
OleDbDataAdapter.Fill(DataSet,StartRecord,EndRecord,"Name")
来实现的哦。哈哈。。