当前位置:文档之家› ASP_NET中实现数据分页的几种方法

ASP_NET中实现数据分页的几种方法

ASP_NET中实现数据分页的几种方法
ASP_NET中实现数据分页的几种方法

Computer Knowledge and Technology 电脑知识

与技术本栏目责任编辑:谢媛媛软件设计开发第7卷第20期(2011年7月)https://www.doczj.com/doc/ea5413517.html, 中实现数据分页的几种方法

庄新妍,周洪翠

(呼伦贝尔学院计算机科学与技术学院,内蒙古海拉尔021008)

摘要:ASP .NET 是一种服务器端制作动态WEB 页的全新编程手段。该文讨论了在ASP .NET 框架下对WEB 数据库几种实现分页显示的方法。对利用自带分页功能的数据控件(如:DataGrid )和对于没有自带分页功能的控件(如:DataList )进行分页分别结合实例进行了详细的阐述。

关键词:https://www.doczj.com/doc/ea5413517.html, ;WEB 数据库;DataGrid ;Datalist ;分页

中图分类号:TP311文献标识码:A 文章编号:1009-3044(2011)20-4896-03

Several Methods of Realizing Data Paging in the https://www.doczj.com/doc/ea5413517.html,

ZHUANG Xin-yan,ZHOU Hong-cui

(Hunlunbeier University of Computer Science and Technology Institute,Hailaer 021008,China )

Abstract:https://www.doczj.com/doc/ea5413517.html, is a brand new programming method that makes dynamic WEB page through the server.This article discusses several methods of realizing page display of WEB database in the https://www.doczj.com/doc/ea5413517.html, framework.It detailed that how to page for using the data control owning paging function (such as:DataGrid)and for not bringing paging control function (such as:DataList)Combined with examples respectively.Keywords:https://www.doczj.com/doc/ea5413517.html,;WEB database;DataGrid;Datalist;paging

随着计算机网络技术的发展和普遍应用,人们的工作和生活越来越离不开网络,当人们在网上查看查询信息时,如果成千上万条记录显示在一个页面,即不方便浏览,显示速度也很慢。另外,如果屏幕显示不下,还要借助于窗口滚动条,显然也很麻烦。但是,若对查询的结果分页显示,效果将截然不同。从用户的角度,这种分页显示的结果看起来整齐简洁;从系统的角度,分页显示的速度比一下子显示整个查询记录来得快,因而可以节省网络带宽,增加系统的反应速度。本文由浅至深讲解几种分页的方法。1使用DataGrid 控件自带的默认导航栏进行标准分页

DataGrid 就是一款方便显示数据的控件,将它的DataSource 属性与包含数据库记录集的对象绑定就能很容易的显示记录集的数据。而且该控件自带的分页功能,使得实现分页变得非常容易。使用DataGrid 控件自带的默认导航栏进行分页显示除了正常的数据绑定之外还必须设置该控件的AllowPaging 属性为"True"表示允许分页,然后为了使单击导航栏控件页码时能跳转到特定页,还必须创建一个进行相应的事件处理程序,该事件处理程序为DataGrid 控件的PageIndexChanged 事件。具体代码如下:

Protected Sub MydataGrid_PageIndexChanged(source As Object,e As DataGridPageChangedventArgs)

MydataGrid.CurrentPageIndex =e.NewPageIndex ‘重新指定DataGrid 对象的当前页。

Call MyDataBind()

‘重新进行数据绑定。End Sub

Sub MyDataBind()

‘将数据绑定到DataGrid 对象中。Dim conn As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source="&Server.MapPath("教材购销系统.mdb"))

Dim cmd As New OleDbCommand("select *from 教材一览表",conn)

Dim ds As New DataSet

Dim daap As New OleDbDataAdapter(cmd)

daap.Fill(ds,"教材一览表")

MydataGrid.DataSource =ds.Tables("教材一览表")

MydataGrid.DataBind()

End Sub

其中e.NewPageIndex 会返回用户选择的页码,而CurrentPageIndex 属性是用来指定要显示的数据页。除此之外还可以通过DataGrid 的PagerStyle 属性设置分页导航栏的样式。

2使用DataGrid 控件自带的默认

导航栏进行自定义分页

第一种方法虽然编码少,且可利用数

据集的很多功能,但它的缺点也是显而易

收稿日期:2011-04-19

作者简介:庄新妍(1978-),女,讲师,硕士,研究方向为计算机技术应用;周洪翠(1978-),女,讲师,工学硕士,研究方向为计算机技

术应用。

表1E-mail:xsjl@https://www.doczj.com/doc/ea5413517.html, https://www.doczj.com/doc/ea5413517.html, Tel:+86-551-56909635690964ISSN 1009-3044

Computer Knowledge and Technology 电脑知识与技术Vol.7,No.20,July 2011.4896

Computer Knowledge and Technology 电脑知识与技术

软件设计开发本栏目责任编辑:谢媛媛第7卷第20期(2011年7月)见甚至是致命的:它每次显示一个新页时都是将全部数据读取到数据集中,然后只显示其中部分资源(也就是当前页的数据)。数据集会较长时间占用服务器宝贵的内存资源,返回的数据量大时情况会更严重,虽然可尽量减少数据集中的数据量,可每次使用数据适配器填充数据集会增大开销,降低效率,为了避免这种情况DataGrid 控件还提供了一套自定义分页功能,可以在每一次显示新页时只从数据库中读取当前页的数据到数据集,这样自然可以节省内存资源。

要完成自定义分页,除了要设置DataGrid 控件的AllowPaging="True"之外还要设置表示允许自定义分页的属性AllowCustom -Paging="True"。另外,在填充数据集时要自行指定从第几条记录开始填充,填充到当前页的记录数。具体实现数据绑定的代码如下:

Sub MyDataBind()

Dim conn As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source="&Server.MapPath("教材购销系统.mdb"))

Dim cmdC As New OleDbCommand("SELECT Count(书号)AS 书号之计数FROM 教材一览表;",conn)

'获取数据表的记录总数对DataGrid 控件的VirtualItemCount 属性赋值,该属性指示DataGrid 在进行分页填充时的实际记录数conn.Open()

Dim total As Long =cmdC.ExecuteScalar()

conn.Close()

MyDataGrid.VirtualItemCount =total

‘设置总的记录数。'获取第一条填充记录的索引

Dim Start As Long =MyDataGrid.CurrentPageIndex *MyDataGrid.PageSize

'填充数据集

Dim cmd As New OleDbCommand("select *from 教材一览表",conn)

Dim ds As New DataSet

Dim daap As New OleDbDataAdapter(cmd)

daap.Fill(ds,Start,MyDataGrid.PageSize,"教材一览表")

MyDataGrid.DataSource =ds.Tables("教材一览表")

MyDataGrid.DataBind()

End Sub

其中VirtualItemCount 属性指示该DataGrid 控件绑定的数据源实际有多少条记录。这个属性实际上是告诉DataGrid 控件一共有多少页。另外通过DataGrid 控件的当前页属性CurrentPageIndex 乘以DataGrid 控件每单页上显示记录项数属性PageSize 获得记录集要填充的首条记录的索引,(Start=MyDataGrid.CurrentPageIndex *MyDataGrid.PageSize ,请注意页码索引从零开始)。通过Page -Size 属性获得记录集要填充的记录条数。最后使用daap.Fill(ds,Start,MyDataGrid.PageSize,"教材表")语句对记录集填充。

当然自定义分页也要创建一个进行相应的事件处理程序,该事件处理程序和第一种分页方法描述的PageIndexChanged 事件代码完全相同,不再赘述。

整个页面的运行效果见图1。

3使用DataList 控件进行自定义分页

DataGrid 控件只能以表格的形式来显示数据,但是DataL -

ist 控件可以以更自由的方式显示数据,比如可以在一行显示

多条记录。不过DataList 控件默认是不支持分页显示的,也没

有自带的分页导航栏,所以实现的方法会更复杂一点。这时需

要我们自己自己计算记录总数和总的页数,编码实现页码导航

栏,确定DataList 控件要显示的页码。导航栏就是一些普通的HTML 标记实现的链接到本网页的超级链接,单击这些超链接就会重新打开本页面,并将页码参数传递过去。软后根据要显示的当前页页码计算出当前页第一条记录的索引。最后使用OleDb -DataAdapter 对象的Fill(DataSet 对象名,开始记录索引,每页最多允许记录数,"表名")方法来进行填充。具体实现代码如下。

Protected Sub Page_Load(ByVal sender As Object,ByVal e As System.EventArgs)Handles Me.Load

If Page.IsPostBack =False Then

Session("PageSize")=4

‘确定每页显示的记录个数。‘根据记录总数和每页显示的记录个数计算总页数。

Session("PageCount")=Ceiling(CountTotal()/Session("PageSize"))

If Session("CurrentPageIndex")Is Nothing Then

Session("CurrentPageIndex")=0

Else

Session("CurrentPageIndex")=Me.Request.QueryString("PageIndex")-1

End If

Call MyDataBind()

Call myViewPage()

End If

End Sub

Sub MyDataBind()

Dim conn As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source="&Server.MapPath("教材购销系统.mdb"))

Dim cmd As New OleDbCommand("select *from 教材一览表order by 书名",conn)

Dim ds As New DataSet

图14897

Computer Knowledge and Technology 电脑知识与技术

本栏目责任编辑:谢媛媛软件设计开发第7卷第20期(2011年7月)

Dim daap As New OleDbDataAdapter(cmd)

‘计算第一条记录的索引,按照每页的记录数填充到表"教材一览表"中去。

daap.Fill(ds,Session("CurrentPageIndex")*Session("PageSize"),Session("PageSize"),"教材一览表")MyDataList.DataSource =ds.Tables("教材一览表")''

MyDataList.DataBind()

End Sub

Function CountTotal()‘计算记录总数的函数。

Dim conn As New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source="&Server.MapPath("教材购销系统.mdb"))Dim cmd As New OleDbCommand("select count(书号)from 教材一览表",conn)

conn.Open()

CountTotal =cmd.ExecuteScalar

conn.Close()

End Function

Sub myViewPage()

‘页码导航栏实现代码。'首先显示当前页和总页码

lblPage.Text ="当前显示第"&(Session("CurrentPageIndex")+1)&"页/共"&Session("PageCount")&"页"'下面计算当前要显示的最小页码和最大页码

Dim intMin,intMax,I As Integer

intMin =(Int(Session("CurrentPageIndex")/10))*10+1

intMax =(Int(Session("CurrentPageIndex")/10))*10+10

If intMax >Session("PageCount")Then intMax =Session("PageCount")

'下面添加首页的超链接

lblPage.Text &=" 首页 "

'下面添加通往前10页的链接

If intMin -1>1Then

lblPage.Text &="前10页 "

End If

'下面添加当前10页的链接

For I =intMin To intMax

lblPage.Text &=""&I &" "

Next

'下面输出通往后10页的链接

If intMax +1

lblPage.Text &="后10页 "

End If

'下面输出通往尾页的链接

lblPage.Text &="尾页 "

End Sub

其中的"1  & nbsp;"; for(var i=2;i"+i+" &nb sp; "; } html+=""+pageTotal+"  ;  "; html+=" 下一页"; }else{ html=""; } document.getElementById("page").innerHTML=html; }else{ html="1   "; for(var i=2;i<5;i++) { html+=""+i+"  & nbsp;";

图书资料分页显示

题目:图书资料分页显示 一、语言和环境 A 实现语言 Java B 环境要求 JDK1.6、MyEclipse5.5、Tomcat5.5、SQL Server2005 二、功能要求 图书资料信息查询系统主要的功能为实现图书信息列表的分页显示,现要求使用JSP+JDBC技术实现该功能,数据库使用SQL Server2005。要实现的功能如下: 1.默认打开图书信息列表首页,如图1所示。 图-1 图书信息列表 2.当用户点击“下一页”按钮后,系统能够根据当前显示页跳转到下一页进行显示, 如图2所示。

图-2 点击“下一页” 3.当显示第一页时,用户再次点击“上一页”按钮,页面不会进行跳转,始终停留在 第一页。当显示到最后一页时,用户再次点击“下一页”按钮,页面不会进行跳转,始终停留在最后一页。 三、数据库设计 数据库名称及要求:数据库名称ebook 四、推荐实现步骤 1.建立数据库和数据表,并且添加测试数据; 2.使用MyEclipse创建web项目eBook,导入数据库驱动包,在源文件夹中创建3 个包:entity包用于存放实体类,dao包用于存放数据访问类,operator包用于存放 业务操作类; 3.创建实体类:BookInfo.java A.参考bookInfo表编写属性 B.编写各属性的setter/getter方法。 4.创建Base基类:BaseDao.java 包含基本数据库资源的获取、释放操作

5.创建operator类:Operator.java A.编写方法getBookList(int page,int pageSize),用于按照页数和每页显示的记录数 进行图书查询。 B.编写方法getAllPages(int pageSize),根据每页显示的记录数,返回总页数。 6.创建JSP:infoList.jsp A.要求使用CSS控制页面效果 B.编写小脚本,获取需要显示的页数。 C.调用Operator类的getAllPages方法,得到总页数,并根据当前页数计算出上 一页和下一页的页数。 D.使用小脚本,确定每页显示的记录数,调用Operator类的getBookList方法, 返回相应页面的显示数据。 7.测试程序,调试运行成功后,分离数据库文件与代码文件一同提交。 五、注意事项 1.请注意界面美观,控件摆放整齐; 2.请注意代码的书写、命名符合规范,在代码中添加必要的注释; 3.请注意操作数据库时进行必要的异常处理。

大数据功能模块概要设计-V1.1Word版

第1章 系统总体架构

第2章通用组件 2.1 基础页面组件 前端页面JS框架,采用jquery为基础开发框架;为考虑对IE6,7,8的兼容性;建议版本为:1.7.2; 基于jquery的UI框架,目前流行的有:easyui 、jquery ui 、dwz;这三个各有一部分对基础页面组件的支持;(考虑到这些基础UI框架可能存在的不兼容性,建议只选择一个,对于UI框架不支持的组件,另外选择开源提供) 对于常用的基础页面组件选型如下:

2.2 基础技术组件

2.3 基础类库 J2EE服务端开发所需要的基础类库包括: apache-common 对基础类的一些扩展;包括了:commons-beanutils.jar \ commons-collections.jar \ commons-fileupload.jar \ commons-io.jar \ commons-lang.jar \ commons-lang3.jar \ commons-logging.jar json-lib 对json数据格式的解析、封装;提供将json字符串,到Bean或者List的转换;或者将Bean或者List转换为 json字符串; junit 进行单元测试的基础包;建议使用 junit4 struts2 / spring mvc MVC 的 C 层的选型 spring 业务处理逻辑层,建议使用spring3.0以上版本; ibatis / mybatis/ hibernate ORM层的选型

第3章选型 3.1 中间件 商业:weblogic、webshpere 开源:jboss、jetty、tomcat 对于中间件有要求:部署的时候,需要支持jdk6.0;如果是weblogic建议使用10.3以上版本,采用sun-jrocket的jdk; websphere 要求6.1以上版本; 3.2 数据库 3.2.1 关系型 Oracle / MySQL; 如果是oracle,要求10g以上版本,并且已经升级地理数据库 3.2.2 NoSQL mongodb / hadoop / hive /hbase /memcached/redis 3.3 底层开发框架 3.3.1 Java 服务端开发框架 struts2 + spring3+ ibatis (?mybatis)? spring3+ibatis (?mybatis) ?

海量数据库的查询优化及分页算法方案

海量数据库的查询优化及分页算法方案 随着“金盾工程”建设的逐步深入和公安信息化的高速发展,公安计算机应用系统被广泛应用在各警种、各部门。与此同时,应用系统体系的核心、系统数据的存放地――数据库也随着实际应用而急剧膨胀,一些大规模的系统,如人口系统的数据甚至超过了1000万条,可谓海量。那么,如何实现快速地从这些超大容量的数据库中提取数据(查询)、分析、统计以及提取数据后进行数据分页已成为各地系统管理员和数据库管理员亟待解决的难题。 在以下的文章中,我将以“办公自动化”系统为例,探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页。以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构: CREA TE TABLE [dbo].[TGongwen] ( --TGongwen是红头文件表名 [Gid] [int] IDENTITY (1, 1) NOT NULL , --本表的id号,也是主键 [title] [varchar] (80) COLLA TE Chinese_PRC_CI_AS NULL , --红头文件的标题 [fariqi] [datetime] NULL , --发布日期 [neibuY onghu] [varchar] (70) COLLA TE Chinese_PRC_CI_AS NULL , --发布用户 [reader] [varchar] (900) COLLA TE Chinese_PRC_CI_AS NULL , --需要浏览的用户。每个用户中间用分隔符“,”分开 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO 下面,我们来往数据库中添加1000万条数据: declare @i int set @i=1 while @i<=250000 begin insert into Tgongwen(fariqi,neibuyonghu,reader,title) values('2004-2-5','通信科','通信科,办公室,王局长,刘局长,张局长,admin,刑侦支队,特勤支队,交巡警支队,经侦支队,户政科,治安支队,外事科','这是最先的25万条记录') set @i=@i+1 end GO declare @i int set @i=1 while @i<=250000 begin insert into Tgongwen(fariqi,neibuyonghu,reader,title) values('2004-9-16','办公室','办公室,通信科,王局长,刘局长,张局长,admin,刑侦支队,特勤支队,交巡警支队,经侦支队,户政科,外事科','这是中间的25万条记录') set @i=@i+1 end GO declare @h int set @h=1 while @h<=100 begin

分页管理的缺页调度—LRU算法

南通大学操作系统实验课 实验报告 学生姓名 所在院系 专业 学号 指导教师 南通大学 2014年 5 月 30 日

虚拟存储器管理 采用LRU算法实现分页管理的缺页调度 一、实验目的 为了使大的进程(其地址空间超过主存可用空间)或多个进程的地址空间之和超过实际主存空间时,仍能运行,引入了虚拟存储器的概念。使进程的一部分地址空间在主存,另一部分在辅存,由操作系统实现多级存储器的自动管理,实现主存空间的自动覆盖。模拟请求分页虚拟存储器管理技术中的硬件地址变换、缺页中断以及页式淘汰算法,处理缺页中断。 通过本实验,使学生对请求分页管理的概念有一个清楚的理解。 二、实验要求 书写实验报告,应该包括以下几项内容: (1)实验题目; (2)程序中使用的数据结构及主要符号说明; (3)程序流程图和带有详细注释的源程序; (4)执行程序名,并打印程序运行时的系统状态的初值、每次调入调出的页号和运行结果;(5)通过实验后的收获与体会及对实验的改进意见和见解。 三、简要概述 当采用LRU算法时,用一个数组P构成堆栈,堆栈中各个元素为进程已在主存的页号,为了进行页面置换,可设置一个栈指针HEAD,初始化为0。假定分配给每个进程的内存块数固定不变,为M。当队列满需要淘汰时,操作系统选择栈底的元素淘汰,其他元素向下移一个位置,将新调入页放HEAD指示的栈顶。当访问的页在栈中时,还应调整页从当前位置到栈顶。采用LRU淘汰算法的流程如下所示。

四、流程图

五、结果 六、总结与感悟 经过了这学期的操作系统实验,我对操作系统实验有了全新的认识。尤其是当拿到一个任务时,如何去分析,先干什么,接着干什么,最后干什么,有了比较明确的思路。 拿到一个题目后,我们应该先对这个题目进行概要的分析、设计,分析出这个程序是干什么用的,应该实现什么功能,这些功能应该包含哪些函数。概要设计做好后,我们就要开始做详细设计,将做好的概要设计进行完善,把每个函数要实现的功能用伪代码写出来,或者是用流程图画出来,这样我们就能基本上知道每个程序应该如何实现它自身的功能,写源代码时也就不会那么盲目。 写源代码是将详细设计转化为C++代码的过程,详细设计做好后,我们只需在其基础上将一些简单的或者是用汉语代替的语句用C++语句写出来,再将一些语法错误改过来,并将概要设计和详细设计时未考虑到的东西在语句中完善,最终形成一个可执行的C++文件。刚开始的时候,我根据书上的提示自己编写好程序输入电脑,然后编译的时候,出现了许许多多各种各样的问题,回头查看程序,自己却很难找到问题所在,于是查阅各种资料,问了身边很多同学,终于将程序顺利调试出来了。通过这个系统的实现,我从输入代码跟运行调试的整个过程中学习到了很多东西,也了解到系统出现问题的时候的各种错误应该如何解决。

大数据分析教程——制作数据报告的流程

大数据分析教程——制作数据报告的流程 上图中可以很清楚的看到,一个数据报告(副本)依据需求不同,有普通难度(蓝->橙->绿->红),也有英雄难度(蓝->橙->绿+黄->红),这次我们先讲普通难度的攻略,英雄难度放到下次讲。普通难度的数据报告要经历7个步骤:Step 1:目标确定 这一步在工作中通常是由你的客户/上级/其他部门同事/合作方提出来的,但第一次的数据报告中,需要你自己来提出并确定目标。 选择目标时,请注意以下几点: 1、选择一个你比较熟悉,或者比较感兴趣的领域/行业; 2、选择一个范围比较小的细分领域/细分行业作为切入点; 3、确定这个领域/行业有公开发表的数据/可以获取的UGC内容(论坛帖子,用户点评等)。 逐一分析上面三个注意点:

1、选择熟悉/感兴趣的领域/行业,是为了保证你在后续的分析过程中能够真正触及事情的本质——这一过程通常称为洞察——而不是就数字论数字; 2、选择细分领域/行业作为切入点,是为了保证你的报告能够有一条清晰的主线,而非单纯堆砌数据; 3、确定公开数据/UGC内容,是为了保证你有数据可以分析,可以做成报告,你说你是个军迷,要分析一下美国在伊拉克的军事行动与基地组织恐怖活动之间的关系……找到了数据麻烦告诉我一声,我叫你一声大神…… 不管用什么方法,你现在有了一个目标,那么就向下个阶段迈进吧。 Step 2:数据获取 目标定下来了,接下来要去找相应的数据。如果你制定目标时完全遵循了第一步的三个注意点,那么你现在会很明确要找哪些数据。如果现在你还不确定自己需要哪些数据,那么……回到第一步重来吧。 下面我总结一下,在不依赖公司资源,不花钱买数据的情况下,获取目标数据的三类方法: 1、从一些有公开数据的网站上复制/下载,比如统计局网站,各类行业网站等,通过搜索引擎可以很容易找到这些网站。举例:要找汽车销量数据,在百度输入“汽车销量数据查询”关键字,结果如下:

经过优化测试的SQL分页存储过程

经过优化测试的SQL分页存储过程 2009-10-24 23:20 建立一个 Web 应用,分页浏览功能必不可少。这个问题是数据库处理中十分常见的问题。经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一建立,就将相关的记录锁住,直到取消游标。游标提供了对特定集合中逐行扫描的手段,一般使用游标来逐行遍历数据,根据取出数据条件的不同进行不同的操作。而对于多表和大表中定义的游标(大的数据集合)循环很容易使程序进入一个漫长的等待甚至死机。 更重要的是,对于非常大的数据模型而言,分页检索时,如果按照传统的每次都加载整个数据源的方法是非常浪费资源的。现在流行的分页方法一般是检索页面大小的块区的数据,而非检索所有的数据,然后单步执行当前行。 最早较好地实现这种根据页面大小和页码来提取数据的方法大概就是“俄罗斯存储过程”。这个存储过程用了游标,由于游标的局限性,所以这个方法并没有得到大家的普遍认可。 后来,网上有人改造了此存储过程,下面的存储过程就是结合我们的办公自动化实例写的分页存储过程: CREATE procedure pagination1 (@pagesize int, --页面大小,如每页存储20条记录 @pageindex int --当前页码 ) as set nocount on begin declare @indextable table(id int identity(1,1),nid int) --定义表变量declare @PageLowerBound int --定义此页的底码 declare @PageUpperBound int --定义此页的顶码 set @PageLowerBound=(@pageindex-1)*@pagesize set @PageUpperBound=@PageLowerBound+@pagesize set rowcount @PageUpperBound insert into @indextable(nid) select gid from TGongwen where fariqi >dateadd(day,-365,getdate()) order by fariqi desc select O.gid,O.mid,O.title,O.fadanwei,O.fariqi from TGongwen O,@indextable t where O.gid=t.nid and t.id>@PageLowerBound and t.id<=@PageUpperBound order by t.id end set nocount off

相关主题
文本预览
相关文档 最新文档