好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

DataGrid基于Access的快速分页法

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

}

查看更多关于DataGrid基于Access的快速分页法的详细内容...

  阅读:44次