title: Using SqlDataReader to fill an ArrayList?
body: <p>I'm trying to implement a method which will take a given connection string and return an ArrayList containing the contents of a SQL view.</p>
  
  <p>I've verified the validity of the connection string and the view itself. However I don't see what the problem is in the code below. In debug, when it runs the ExecuteReader method and then try to enter the while loop to iterate through the records in the view, it immediately bails because for some reason <strong>sqlReader.Read()</strong> doesn't.</p>
  
  <pre><code>    public ArrayList GetEligibles(string sConnectionString)
      {
          string sSQLCommand = "SELECT field1, field2 FROM ViewEligible";
  
          ArrayList alEligible = new ArrayList();
  
          using (SqlConnection sConn = new SqlConnection(sConnectionString))
          {
              // Open connection.
              sConn.Open();
  
              // Define the command.
              SqlCommand sCmd = new SqlCommand(sSQLCommand, sConn);
  
              // Execute the reader.
              SqlDataReader sqlReader = sCmd.ExecuteReader(CommandBehavior.CloseConnection);
  
              // Loop through data reader to add items to the array.
              while (sqlReader.Read()) 
              {
                  EligibleClass Person = new EligibleClass();
  
                  Person.field1 = sqlReader["field1"].ToString();
                  Person.field2 = sqlReader["field2"].ToString();
  
                  alEligible.Add(Person);
              }
  
              // Call Close when done reading.
              sqlReader.Close();
          }
  
          return alEligible;
      }
  </code></pre>
  
  <p>Note, <strong>EligibleClass</strong> is just a class object representing one row of the view's results. </p>