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