当前位置:首页 » 存储配置 » aspnet分页存储过程

aspnet分页存储过程

发布时间: 2022-11-19 23:46:44

㈠ 求一个sql存储过程分页。支持多表联合查询,模糊查询!

可以加个游标 使用更方便

@PageCount bigint output,--总页数
@Pages bigint output --当前页
as
if @Pages<=0 --判断页数
set @Pages=1
declare @指针定位 bigint
set @指针定位=9*(@Pages-1)--这个是每页10条

declare @hid bigint,--获取定位Id 主要是用自增值判断的
@余数 bigint--存余数 这个余数是 记录数/10 余下的数

select @PageCount=count(*) from [表] where [Id] = @Id
set @余数=@PageCount%10 --这里的@PageCount 是记录总数
if @余数>0
set @PageCount=@PageCount/10+1 --这里的@PageCount是总页数
else
set @PageCount=@PageCount/5 --这里的@PageCount是总页数
if @Pages>@PageCount --@Pages是当前页
set @Pages=@PageCount

declare mycur scroll cursor for
select [Id] from [表] where [Id] = @Id
open mycur
fetch absolute @指针定位 from mycur into @hid --@hid获取定位Id
if @hid is null
set @hid=0

SELECT TOP 10 * --这里的10 是指 页数大小
FROM 表
WHERE (Id NOT IN --------在where后面 可以加条件 如where [列1]=2 and (Id NOT IN-----
(SELECT TOP (@hid) Id
FROM 表
ORDER BY Id))
ORDER BY Id
--上面的是我根据下面的 自己改的 我也不确定速度快否 也请高手看看 不过挺好用--

SELECT TOP 页大小 *
FROM TestTable
WHERE (ID NOT IN
(SELECT TOP (页大小*(页数-1)) id
FROM 表
ORDER BY id))
ORDER BY ID
这是我自己整理的 你仔细看看 很好用的

㈡ ASPNET怎样调用一个存储过程(带参数的)

ASPNET怎样调用一个存储过程(带参数的)使用的是Ado.NET中的相关的数据库操作方法。
Ado.NET连接数据库有以下几个步骤:
1:使用配置的数据库连接串,创建数据库连接 Connection 对象
2:构建操作的sql语句
3:定义command对象
4:打开数据连接
5:执行命令
举一个例子,删除操作
public int DeleteStudent3(int stuID)
{

int result = 0;

using (SqlConnection connection = new SqlConnection(connString))
{
SqlCommand objCommand = new SqlCommand(dboOwner + ".usp_DeleteStudent", connection);
objCommand.CommandType = CommandType.StoredProcere;

objCommand.Parameters.Add("@stuID", SqlDbType.Int).Value = stuID;

connection.Open();
result = objCommand.ExecuteNonQuery();
}
return result;
}

㈢ aspnetpage控件怎么把gridview分页 求详细代码 最好用存储过程

没用存贮过程的
private void Binder()
{
DataSet ds = DataHelpe.GetDataSet(strsql);
DataView dv = ds.Tables[0].DefaultView;
PagedDataSource pds = new PagedDataSource();
pagelist.RecordCount = dv.Count;
pagelist.AlwaysShow = true;
pagelist.PageSize = 20;
pds.DataSource = dv;
pds.AllowPaging = true;
pds.CurrentPageIndex = pagelist.CurrentPageIndex - 1;
pds.PageSize = pagelist.PageSize;
this.ddlUser.DataSource = pds;
this.ddlUser.DataBind();
this.pagelist.CustomInfoHTML = "记录总数:" + pagelist.RecordCount.ToString() + "";
}
pagelist是分页控件的ID
//PageChanging这个事件是分页控件自带的一个事件
protected void PageChanging(object src, PageChangingEventArgs e)
{
pagelist.CurrentPageIndex = e.NewPageIndex;
this.Binder();
}

㈣ 求 sql 2000 通用分页存储过程 能用就给高分【内有要求】

/****** 对象: 存储过程 dbo.AspNetPage ******/
/*
=====================================
* @Describe 通用查询数据ASPNETPAGE分页过程
/*
@Tables 表名 必选
@PrimaryKey 主关键字 必选
@pagesize 页码大小 可选 默认值:1
@pageindex 当前页 可选 默认值:1
@docount 是否只统计总记录数 可选 默认值:否
@Fields 选择字段 可选 默认:所有字段
@Sort 排序语句,不带Order By 可选
@Filter 过滤语句,不带Where 可选
*/
=====================================
*/
CREATE procere AspNetPage
(
/*
@Tables 表名 必选
@PrimaryKey 主关键字 必选
@pagesize 页码大小 可选 默认值:1
@pageindex 当前页 可选 默认值:1
@docount 是否只统计总记录数 可选 默认值:否
@Fields 选择字段 可选 默认:所有字段
@Sort 排序语句,不带Order By 可选
@Filter 过滤语句,不带Where 可选
*/
@Tables nvarchar(400),
@PrimaryKey nvarchar(100),
@pagesize int=1,
@pageindex int=1,
@docount bit=0,
@Fields varchar(1000) = '*',
@Sort varchar(1000) = NULL,
@Filter varchar(1000) = NULL)
as
set nocount on

DECLARE @strFilter varchar(1000)
DECLARE @strSort varchar(1000)
IF @Filter IS NOT NULL AND @Filter != ''
BEGIN
SET @strFilter = ' WHERE ' + @Filter + ' '
END
ELSE
BEGIN
SET @strFilter = ''
END
IF @Sort IS Not NULL And @Sort!=''
Begin
Set @strSort='order by '+@Sort+''
End

if(@docount=1)

exec('select count('+@PrimaryKey+') from '+@Tables+' '+@strFilter+'')
else
begin
declare @PageLowerBound int
declare @PageUpperBound int
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
create table #pageindex(id int identity(1,1) not null,nid int)
set rowcount @PageUpperBound
exec(
'
insert into #pageindex(nid)
select '+@PrimaryKey+' from '+@Tables+' '+@strFilter+' '+@strSort+'
select O.'+@Fields+'
from '+@Tables+' O,#pageindex p
where O.'+@PrimaryKey+'=p.nid and p.id>'+@PageLowerBound+' and p.id<='+@PageUpperBound+' order by p.id
'
)
select * from #pageindex
end
set nocount off

GO
希望对你有帮助。

㈤ asp.net 分页控件怎么用呢

用gridview自带的分页是比较好用的。
建议你在网络上 搜索 gridview 72,里面有很多gridview的好东西
学习学习

㈥ asp.net如何实现多表查询然后对其进行分页

你要懂得多表联查,那我就教你分页拉:
第一 要用到分页控件aspnetPage 示例如下
第二 在数据访问层添加以下两个方法
//查询总记录数
public static int GetGoodsCount()
{
string sql = "select count(*) from goods ";
return Convert.ToInt32(DBHelp.ExceateScalar(sql,null));
}

//查询信息
public static List<Goods> GetAllGoods(int startRecordIndex,int pageSize)
{
//row_number()over(order by goodsid)为行号(新的函数)
string sql = "select * from (
select *,row_number()over(order by goodsid) as num from goods) as a
where num between @startIndex and @startIndex+@pageSize-1 ";

SqlParameter[] paras=new SqlParameter[]
{
new SqlParameter("@startIndex",startRecordIndex),
new SqlParameter("@pageSize",pageSize)
};
return ExeceateSelecta(sql,paras);
}

第三步在页面后台调用,
注意首先要为aspnetPage的属性pageSize给值,也就是说每页要显示信息数量
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
AspNetPager1.RecordCount = GoodsManager.GetGoodsCount();
}
}
//分页控件的事件
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
//信息开始的索引StartRecordIndex 信息数量PageSize
List<Goods> list = GoodsManager.GetAllGoods(this.AspNetPager1.StartRecordIndex, AspNetPager1.PageSize);
this.DataList1.DataSource = list;
this.DataList1.DataBind();
}

㈦ VS分页显示怎么弄

两种方法:
1:PageDateSource 不推荐 效率低 速度慢。
2:自己写分页的存储过程,然后在用ASPNETPAGE分页控件处理一下。

㈧ repeater用 aspnetpage控件实现分页,使用存储过程,有什么好的方法,谢谢

用通用 page分页存储过程分页就可以了。

㈨ 数据库中有几万条数据,怎样使用aspnetpage分页控件结合数据库分页读取呢

可以用存储过程分页
/*
函数名称: GetRecordFromPage
函数功能: 获取指定页的数据
参数说明: @tblName 包含数据的表名
@fldName 关键字段名
@PageSize 每页记录数
@PageIndex 要获取的页码
@OrderType 排序类型, 0 - 升序, 1 - 降序
@strWhere 查询条件 (注意: 不要加 where)
*/
CREATE PROCEDURE GetRecordFromPage
@tblName varchar(255), -- 表名
@fldName varchar(255), -- 字段名
@PageSize int = 10, -- 页尺寸
@PageIndex int = 1, -- 页码
@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序
@strWhere varchar(2000) = '' -- 查询条件 (注意: 不要加 where)
AS
declare @strSQL varchar(6000) -- 主语句
declare @strTmp varchar(1000) -- 临时变量
declare @strOrder varchar(500) -- 排序类型
if @OrderType != 0
begin
set @strTmp = '<(select min'
set @strOrder = ' order by [' + @fldName + '] desc'
end
else
begin
set @strTmp = '>(select max'
set @strOrder = ' order by [' + @fldName +'] asc'
end
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'
+ @strOrder
if @strWhere != ''
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['
+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['
+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '
+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder
if @PageIndex = 1
begin
set @strTmp = ''
if @strWhere != ''
set @strTmp = ' where (' + @strWhere + ')'
set @strSQL = 'select top ' + str(@PageSize) + ' * from ['
+ @tblName + ']' + @strTmp + ' ' + @strOrder
end
exec (@strSQL)
GO

㈩ asp.net网站开发一般都用什么控件显示数据库信息用什么控件分页请详细说下怎么分页最好!谢谢

前台使用DataList、ListView、Repeater 后台一般使用GridView GridView和ListView(VS2008以后才有)都自带分页功能 DataList和Repeater需要手动分页: 分页方式有很多种 1、SQL语句分页:就是前台调用时动态传页码 后台拼SQL语句(select top 页大小 * from 表名 where 主键 not in(select top (页码-1)*页大小 主键 from 表名)) 2、存储过程,原理和上面的差不多 3、使用GridView中封装的PageDataSource(实例化类,取数据源,设置允许分页、设置分页大小、最后把数据源指向展示控件,其实可以和第三方控件的aspnet分页控件配合使用),适用于数据记录不是太大的时候,因为会把全所记录都加内存中,数据太大会占用内存 4、VS2008以后有LINQ,这LINQ的SKIP一样可以实例。优点:延迟查询,不用把所有数据全查出来,应用于数据非常多的时候,如果用的是VS2008之前的IDE那么就用第一、二种方法吧 5、在后台用生成静态页的方式,把前台的分页功能全都生成静态文件,这样虽然占用空间大一些,但速度很快

热点内容
什么叫只读程序存储器 发布:2025-07-21 12:02:08 浏览:643
cp1e编程手册 发布:2025-07-21 11:25:36 浏览:669
ftp报文协议格式 发布:2025-07-21 11:16:06 浏览:970
命令上传文件到linux服务器 发布:2025-07-21 11:01:46 浏览:645
c语言反转 发布:2025-07-21 10:51:18 浏览:318
解压折叠玩具金属 发布:2025-07-21 10:48:53 浏览:108
centos7phpnginx 发布:2025-07-21 10:40:25 浏览:530
android标签布局 发布:2025-07-21 10:38:37 浏览:137
腾讯存储团队分布式存储系统 发布:2025-07-21 10:37:55 浏览:127
火影忍者决斗脚本 发布:2025-07-21 10:29:23 浏览:997