title: The proper way to implement paging in SqlDataReader !
body: <p>I Am correctly using my own way to achieve this, but I  don't know if it is efficient or not , so this is the function :  </p>
  
  <pre><code>public SqlDataReader GetArticlesByPage(int pageNum, int pageSize)
  {
      if (pageNum == 0)
          pageNum = 1;
      SqlDataReader dr = SqlHelper.ExecuteReader(string.Format("SELECT TOP {0} Des, Id, Title, Icon FROM Threads ORDER BY Id DESC", pageSize * pageNum));
      int div = pageNum - 1;
      div = pageSize * div;
      for (int i = 0; i &lt; div; i++)
          dr.Read();
      return dr;
  }
  </code></pre>
  
  <p>It works fine but as you see the code, when I need to take the articles of page 10 when the page size e.g 10 per page I select the top 10*10 result then skip the unwanted results by using FOR statement . <br>Any suggestions , thanks in advance . </p>