百宝箱为你解决ADO.NET分页烦恼

ADO.NET分页还是比较常用的,于是我研究了一下ADO.NET分页,在这里拿出来和大家分享一下,希望对大家有用。查询结果ADO.NET分页是以较小数据子集(即页)的形式返回查询结果的过程。 它通常用于以易于管理的小块形式向用户显示结果。

#T#DataAdapter 提供了通过 Fill 方法的重载来仅返回一页数据的功能。 但是,对于大量的查询结果,它可能并不是首选的分页方法,因为 DataAdapter 虽然仅使用所请求的记录来填充目标 DataTable 或 DataSet,但仍会使用返回整个查询的资源。 若要在从数据源中返回一页数据时不使用返回整个查询的资源,请为查询指定附加条件,使返回的行数减少到只返回所需的行。若要使用 Fill 方法返回一页数据,请指定 startRecord 参数(代表该数据页中的第一个记录),并指定 maxRecords 参数(代表该数据页中的记录数)。

以下代码示例显示如何使用 Fill 方法来返回查询结果(页大小为 5 个记录)的第一页。

Visual Basic

 
 
  1. Dim currentIndex As Integer = 0 
  2. Dim pageSize As Integer = 5 
  3.  
  4. Dim orderSQL As String = "SELECT * FROM dbo.Orders ORDER BY OrderID" 
  5. ' Assumes that connection is a valid SqlConnection object.  
  6. Dim adapter As SqlDataAdapter = _ 
  7. New SqlDataAdapter(orderSQL, connection)  
  8.  
  9. Dim dataSet As DataSet = New DataSet()  
  10. adapter.Fill(dataSet, currentIndex, pageSize, "Orders")  

C#

 
 
  1. int currentIndex = 0;  
  2. int pageSize = 5;  
  3.  
  4. string orderSQL = "SELECT * FROM Orders ORDER BY OrderID";  
  5. // Assumes that connection is a valid SqlConnection object.  
  6. SqlDataAdapter adapter = new SqlDataAdapter(orderSQL, connection);  
  7.  
  8. DataSet dataSet = new DataSet();  
  9. adapter.Fill(dataSet, currentIndex, pageSize, "Orders");  

 

THE END