Tuve el mismo problema recientemente. Obtuve el mensaje "Operación no válida en un objeto cerrado", pero cuando depuré el código, era el OracleDataReader que estaba cerrado y no el OracleConnection . Mi problema fue la consulta retuned
una respuesta vacía y el DataReader se cierra solo si no hay datos. Entonces, mi resolución fue simplemente verificar si el lector de datos tiene filas agregando lo siguiente.
dro.Read();
if (dro.HasRows)
{
//Do your
}
Espero que ayude a alguien.