首页  >  文章  >  数据库  >  DataGrid基于Access的快速分页法

DataGrid基于Access的快速分页法

WBOY
WBOY原创
2016-06-07 15:49:291010浏览

// 产生根据指定字段排序并分页查询的 SELECT 语句。 public static String Paging( int pageSize, // 每页要显示的记录的数目。 int pageIndex, // 要显示的页的索引。 int recordCount, // 数据表中的记录总数。 String tableName, // 要查询的数据表。 St

// 产生根据指定字段排序并分页查询的 SELECT 语句。

public static String Paging(

       int pageSize,          //每页要显示的记录的数目。

       int pageIndex,            //要显示的页的索引。

       int recordCount,      //数据表中的记录总数。

       String tableName,      //要查询的数据表。

       String queryFields,    //要查询的字段。

       String primaryKey,    //主键字段。

       bool ascending,       //是否为升序排列。

       String condition       //查询的筛选条件。

) {

       StringBuilder sb  = new StringBuilder();

       int pageCount    = GetPageCount(recordCount,pageSize);     //分页的总数

       int middleIndex  = GetMidPageIndex(pageCount);                   //中间页的索引

       int firstIndex     = 0;                                                         //第一页的索引

       int lastIndex     = pageCount - 1;                                     //最后一页的索引

 

       if (pageIndex

              // 代码略

       } else if (pageIndex > firstIndex && pageIndex

              sb.Append("SELECT TOP ").Append(pageSize).Append(" ")

                     .Append(queryFields).Append(" FROM ").Append(tableName)

                     .Append(" WHERE ").Append(primaryKey);

              if (ascending)

                     sb.Append(" > (").Append(" SELECT MAX(");

              else

                     sb.Append("

              sb.Append(primaryKey).Append(") FROM ( SELECT TOP ")

                     .Append(pageSize*pageIndex).Append(" ").Append(primaryKey)

                     .Append(" FROM ").Append(tableName);

              if (condition != String.Empty)

                     sb.Append(" WHERE ").Append(condition);

              sb.Append(" ORDER BY ").Append(primaryKey).Append(" ")

                     .Append(GetSortType(ascending)).Append(" ) TableA )");

              if (condition != String.Empty)

                     sb.Append(" AND ").Append(condition);

              sb.Append(" ORDER BY ").Append(primaryKey).Append(" ")

                     .Append(GetSortType(ascending));

       }

       else if (pageIndex > middleIndex && pageIndex

              // 代码略

       } else if (pageIndex >= lastIndex) {

              // 代码略

       }

       return sb.ToString();

}

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn