Cita: El DataReader no es recomendable por que abre la conexion, mejor trata con un DataTable, asi no te preocupas de estar abriendo ni cerrando el objeto conexion....
Estoy de acuerdo con lucxx,

ya que en cuestiones de performance lo mas pesado es usar datasets así como son mas lentos que obviamente un datareader.
Primero hay que analizar bien lo que uno pretende mostrar o hacer, antes de usar para cualquier cosa un dataset.