Retroceso del cursor DataReader

¿Cómo puedo rebobinar un cursor de un DataReader al principio?

Con un resultado de DataReader necesito ejecutar doswhile Bucle, pero esos tienen que ser desde el principio. Son dos iteraciones en un conjunto de resultados que ejecutan una consulta una vez.

Ejemplo:

dr = command.ExecuteReader(cmd);

while (dr.Read()) { 
    // do some...
}

// rewind cursor here

while (dr.Read()) {
    // do another things...
}

He examinado los documentos de DataReader y no he encontrado nada, por lo que si no es posible con DataReader, puedo cambiar la clase por una que se ajuste a este propósito.

Respuestas a la pregunta(1)

Su respuesta a la pregunta