温州专业营销网站,住房和城乡建设部注册中心,做网站找哪家好 07月,网站开发体会800字查询结果分页是以较小数据子集#xff08;即页#xff09;的形式返回查询结果的过程。 它通常用于以易于管理的小块形式向用户显示结果。DataAdapter 提供了通过 Fill 方法的重载来仅返回一页数据的功能。 但是#xff0c;对于大量的查询结果#xff0c;它可能并不是首选的…查询结果分页是以较小数据子集即页的形式返回查询结果的过程。 它通常用于以易于管理的小块形式向用户显示结果。DataAdapter 提供了通过 Fill 方法的重载来仅返回一页数据的功能。 但是对于大量的查询结果它可能并不是首选的分页方法因为 DataAdapter 虽然仅使用所请求的记录来填充目标 DataTable 或 DataSet但仍会使用返回整个查询的资源。 若要在从数据源中返回一页数据时不使用返回整个查询的资源请为查询指定附加条件使返回的行数减少到只返回所需的行。若要使用 Fill 方法返回一页数据请指定 startRecord 参数代表该数据页中的第一个记录并指定 maxRecords 参数代表该数据页中的记录数。以下代码示例显示如何使用 Fill 方法来返回查询结果页大小为 5 个记录的第一页。int currentIndex 0;int pageSize 5;string orderSQL ”SELECT * FROM Orders ORDER BY OrderID”;// Assumes that connection is a valid SqlConnection object.SqlDataAdapter adapter new SqlDataAdapter(orderSQL, connection);DataSet dataSet new DataSet();adapter.Fill(dataSet, currentIndex, pageSize, ”Orders”);在上例中DataSet 只填充了 5 个记录但却返回了整个 Orders 表。 若要用相同的 5 个记录填充 DataSet 但仅返回这 5 个记录请在 SQL 语句中使用 TOP 和 WHERE 子句如以下代码示例所示。int pageSize 5;string orderSQL ”SELECT TOP ” pageSize “ * FROM Orders ORDER BY OrderID”;SqlDataAdapter adapter new SqlDataAdapter(orderSQL, connection);DataSet dataSet new DataSet();adapter.Fill(dataSet, ”Orders”);请注意当以这种方式进行查询结果分页时必须保留用于对行进行排序的唯一标识符以便将唯一 ID 传递给用于返回下一页记录的命令如以下代码示例所示。string lastRecord dataSet.Tables[Orders].Rows[pageSize - 1][OrderID].ToString();若要使用接受 startRecord 和 maxRecords 参数的 Fill 方法的重载来返回下一页记录请使当前记录索引按页大小递增并填充该表。 请记住即使仅在 DataSet 中添加一页记录数据库服务器仍会返回全部查询结果。 在以下代码示例中先清除表行然后再用下一页数据填充这些表行。 您可能需要在本地缓存中保留一定数量的返回行以减少与数据库服务器的往返次数。currentIndex pageSize;dataSet.Tables[Orders].Rows.Clear();adapter.Fill(dataSet, currentIndex, pageSize, ”Orders”);若要返回下一页记录而不让数据库服务器返回整个查询请指定对 SQL SELECT 语句的限制条件。 由于上例保留了返回的最后一个记录因此可以在 WHERE 子句中使用它来指定查询的起点如以下代码示例所示。orderSQL ”SELECT TOP ” pageSize “ * FROM Orders WHERE OrderID ” lastRecord ” ORDER BY OrderID”;adapter.SelectCommand.CommandText orderSQL;dataSet.Tables[Orders].Rows.Clear();adapter.Fill(dataSet, ”Orders”);转载于:https://www.cnblogs.com/AngryZe/p/8280376.html