title: Error "There is already an open DataReader associated with this Command which must be closed first" when using 2 distinct commands
body: <p>I have this legacy code :</p>
  
  <pre><code> private void conecta()
   {  
       if (conexao.State == ConnectionState.Closed)
           conexao.Open();
   }
  
   public List&lt;string[]&gt; get_dados_historico_verificacao_email_WEB(string email)
   {
       List&lt;string[]&gt; historicos = new List&lt;string[]&gt;();
       conecta();
  
       sql = 
           @"SELECT * 
           FROM historico_verificacao_email 
           WHERE nm_email = '" + email + @"' 
           ORDER BY dt_verificacao_email DESC, hr_verificacao_email DESC";
  
       com = new SqlCommand(sql, conexao);
       SqlDataReader dr = com.ExecuteReader();
  
       if (dr.HasRows)
       {
           while (dr.Read())
           {
               string[] dados_historico = new string[6];
               dados_historico[0] = dr["nm_email"].ToString();
               dados_historico[1] = dr["dt_verificacao_email"].ToString();
               dados_historico[1] = dados_historico[1].Substring(0, 10);
               dados_historico[2] = dr["hr_verificacao_email"].ToString();
               dados_historico[3] = dr["ds_tipo_verificacao"].ToString();
  
               sql = 
                   @"SELECT COUNT(e.cd_historico_verificacao_email) QT 
                   FROM emails_lidos e 
                   WHERE e.cd_historico_verificacao_email = 
                       '" + dr["cd_historico_verificacao_email"].ToString() + "'";
  
               tipo_sql = "seleção";
               conecta();
               com2 = new SqlCommand(sql, conexao);
  
               SqlDataReader dr3 = com2.ExecuteReader();
               while (dr3.Read())
               {
                   //quantidade de emails lidos naquela verificação
                   dados_historico[4] = dr3["QT"].ToString(); 
               }
               dr3.Close();
               conexao.Close();
  
               //login
               dados_historico[5] = dr["cd_login_usuario"].ToString();
               historicos.Add(dados_historico);
           }
           dr.Close();
       }
       else
       { 
           dr.Close();
       }
  
       conexao.Close();
       return historicos;
   }
  </code></pre>
  
  <p><br/>
  I have created two separates commands to correct the issue, but it still continues: "There is already an open DataReader associated with this Command which must be closed first".</p>
  
  <p>An additional info: the same code is working in another app.</p>