gridview分页代码(可提高分页速度)

gridview分页代码(可提高分页速度)

internal static datatable datareadertodatatable(string squery, int istart, int iend)
        {
datatable schematable = null;
            datatable dt = null;
            sqlcommand cmdsql;
            sqldatareader dr = null;
            sqlconnection conn = null;
            long icount = 0;
            try
            {
                //打开数据库教程连接,执行datareader         
                conn = new sqlconnection(connstring);
                conn.open();
                cmdsql = new sqlcommand(squery, conn);
                dr = cmdsql.executereader(commandbehavior.closeconnection);
                schematable = dr.getschematable();
                dt = new datatable();

                //get the schema of tables columns and its types, and load the same into datatable.
                for (int i = 0; i <= schematable.rows.count - 1; i++)
                {
                    datarow drow = schematable.rows[i];
                    datacolumn column = new datacolumn();
                    column.datatype = system.type.gettype(drow["datatype"].tostring());
                    column.allowdbnull = (drow["allowdbnull"].tostring() == "true" ? true : false);
                    column.columnname = drow["columnname"].tostring();
                    column.caption = drow["columnname"].tostring();
                   
                    dt.columns.add(column);
                    //more datatable property can be added as required.
                }
                if (istart == 0) istart = 1;
                if (iend == 0) iend = 1;
                icount = 1;

                //loop the reader which is executed till the start and variable,
                //fetch and add the rows one by one to data table till the end count is reached.
                // exit the loop and return datable.
                while (dr.read())
                {
                    if (icount >= istart && icount <= iend)
                    {
                        datarow drow = dt.newrow();
                        for (int i = 0; i <= dr.fieldcount - 1; i++)
                        {
                            drow[i] = dr.getvalue(i);
                        }
                        dt.rows.add(drow);
                    }
                    else if (icount > iend)
                    {
                        break;
                    }
                    icount = icount + 1;
                }
            }
            catch (systemexception ex)
            {
                throw ex;
            }
            finally
            {
                conn.close();
                conn.dispose();
                schematable.dispose();
                dr.close();
                dr.dispose();
            }
            return dt;
        }

在后台绑定到gridview的方法如下:

private void binddata(int pageindex)
        {
int startrow;
            int endrow;

            startrow = (pageindex * grdemployee.pagesize) +1;
            endrow= startrow + grdemployee.pagesize -1;
           

        grdemployee.datasource= custompaging.class.common.datareadertodatatable(selectquery,startrow,endrow);
            grdemployee.databind();
          
        } 

1、执行datareader

2、从我们规定的开始的位置执行datareader

3、执行并得到数据记录

4、将数据记录放到datatable数据集中

5、结束datareader

6、返回datatable数据集。

 

时间: 2024-11-02 13:56:32

gridview分页代码(可提高分页速度)的相关文章

简单的php分页代码

<?php   $conn = mysql_connect('localhost','root','mysql');   $db = mysql_select_db("wiki");   $q = mysql_query("select * from wiki_doc");      $num = mysql_num_rows($q);   $perpage = 5;   $totalpage = @ceil($num/$perpage);   $page =

php分页代码实例

function pagestring($count, $pagesize, $wap=false) {       $p = new Pager($count, $pagesize, 'page');       if ($wap) {           return array($pagesize, $p->offset, $p->genWap());       }       return array($pagesize, $p->offset, $p->genBasic

利用JS延迟加载百度分享代码,提高网页速度

发现很多网站在放置百度分享代码的时候,简单的将分享代码放置到固定的网页位置就完事了,这是非常致命的方式.因为,我经常打开一个网页的时候,发现在网页加载到分享代码的时候,有时候花上几秒的时候来请求百度的服务器,最后展示分享按钮. 其实,像这样对网页来说不是非常重要的功能,我们大可以用JS来延迟加载,从而提高网页主要内容的快速加载显示. 这里分享下我的放置方式.一.copy百度分享代码,如下: 复制代码 代码如下: <!-- Baidu Button BEGIN --> <div id=&q

利用JS延迟加载百度分享代码,提高网页速度_javascript技巧

发现很多网站在放置百度分享代码的时候,简单的将分享代码放置到固定的网页位置就完事了,这是非常致命的方式.因为,我经常打开一个网页的时候,发现在网页加载到分享代码的时候,有时候花上几秒的时候来请求百度的服务器,最后展示分享按钮. 其实,像这样对网页来说不是非常重要的功能,我们大可以用JS来延迟加载,从而提高网页主要内容的快速加载显示.这里分享下我的放置方式.一.copy百度分享代码,如下: 复制代码 代码如下: <!-- Baidu Button BEGIN --><div id=&quo

纯JS前端实现分页代码_javascript技巧

先给大家展示下效果图,如果大家感觉效果不错,请参考实现代码: 因为这是我自己第一次动手用js写分页,写的应该也不是很完美,有些公共的没有抽取出来,但是用起来还是可以的,这块代码是可以把它当做公共的分页去处理的,我就是用这块代码写了两个稍微不同一些的分页!公共的代码抽取的也差不多,主要就是ajax后台以及返回的值不同而已,只要把总页码的值获取到,点击首页/下一页等传值正确的话,基本上分页是不会出什么问题的  网上确实有很多分页的插件以及开源代码,单本是一个后台开发猿,前台css等样式还驾驭不住,所

thinkphp3.2.3 分页代码分享_php实例

对于thinkphp分页的实现效果,两种调用方法,一种调用公共函数中的函数方法(参考http://www.cnblogs.com/tianguook/p/4326613.html),一种是在模型中书写分页的方法   1.在公共函数Application/Common/Common/function.php中书写:  function getpage($count,$pagesize=10) { $page=new Think\Page($count,$pagesize); $page->setC

图片分页代码

图片分页代码,asp图片分页代码,asp图片分页源代码及教程 <table width="700" border="1" cellspacing="0" cellpadding="0"> <% sql="select * from [table] order by time1 desc" rs.open sql,conn,1,1 if rs.eof then else   rs.pages

JSP通用高大上分页代码(超管用)_JSP编程

先给大家展示下分页效果,如果亲们还很满意请参考以下代码. 在超链接中要保留参数 当使用多条件查询后,然后在点击第2 页时,这个第2页超链接没有条件了,所以会丢失条件,所以我们需要在页面上的所有链接都要保留条件! 我们要把条件以一个字符串的形式保存到PageBean的url中!这个任务交给Servlet! pagebean package cn.itcast.cstm.domain; import java.util.List; public class PageBean<T> { privat

MySQL高效分页:子查询分页实例

一般MYSQL最基本的分页方式:  代码如下 复制代码 select * from content order by id desc limit 0, 10 在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引.随着数据量的增加,页数会越来越多,查看后几页的SQL就可能类似:  代码如下 复制代码 select * from content order by id desc limit 10000, 10 一言以蔽之,就是越往后分页,LIMIT语句的偏移量就会越大,速