El problema no es ese. El principal problema es que para acceder y consultar un objeto SqlDataReader la conexión no se tiene que haber cerrado y si te fijas en la función de obtenerListado tienes esto en el Finally
Si quieres trabajar con los datos de forma "offline" (con la conexión cerrada) lo mejor es usar un DataSet.