Home  >  Article  >  Database  >  DataGrid基于Access的快速分页法

DataGrid基于Access的快速分页法

WBOY
WBOYOriginal
2016-06-07 15:49:291052browse

// 产生根据指定字段排序并分页查询的 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();

}

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn