title: Select a set of rows and UPDATE or REMOVE some: SqlDataReader or SqlDataAdapter+DataSet
body: <p>I am new to ADO.net
  I need to retrieve from DB a set of rows, then iterate one-be-one and send them, conditionally, to some objects which may <code>UPDATE</code> or <code>DELETE</code> received row from DB. 
  From <code>SqlDataReader</code> documentation I didn't understand properly how it works (does it Read from DB all rows or only some of them or one-by-one?) 
  From <a href="http://msdn.microsoft.com/en-us/library/ms254931.aspx" rel="nofollow">MSDN</a>:</p>
  
  <blockquote>
    <p>Results are returned as the query executes, and are stored in the
    network buffer on the client until you request them using the Read
    method of the DataReader.</p>
  </blockquote>
  
  <ul>
  <li>When exactly result is returned? During <code>command.ExecuteReader()</code> or during <code>reader.Read()</code>? And what is the content of Result - all data or partial? </li>
  <li>What is "network buffer" on local machine?</li>
  <li>From where <code>Read</code> reads data? From DB or from Cache?</li>
  </ul>
  
  <p>Will affect data modifying (<code>UPDATE</code> or <code>DELETE</code>) retrieving from DB of next data?
  Code stub: </p>
  
  <pre><code>using (SqlConnection connection = new SqlConnection(connectionString))
  using (SqlCommand command = new SqlCommand(queryString, connection))
  {
      connection.Open();
      using (SqlDataReader reader = command.ExecuteReader());
      {
      while (reader.Read())
          {
              //ReadSingleRow...
          //Perform some checks and if TRUE send to a manager obeject whcih perform UPDATE or DELETE on this record
          }
      }
  }
  </code></pre>
  
  <p>or better to use <code>SqlDataAdapter</code> with <code>DataSet</code> or <code>DataTable</code> here?</p>