/*
         * - RecuperarOpcionRespuestaEvaluda tiene la misión de recuperar las opciones evaluadas para una pregunta puntual
         *   de a la BASE DE DATOS
         */
        public OpciondeRespuesta recuperarOpcionRespuesta(string codigo_OR)
        {
            bool conexionExitosa;
            GestorOpRespuesta gestorOpcionResp = new GestorOpRespuesta();
            OpciondeRespuesta retorno_OpRespuesta = null;//Para el retorno de datos

            string consultaSql = "SELECT * FROM `opcion de respuesta` opcRes "
            + "WHERE opcRes.codigo = '" + codigo_OR + "';";

            conexionExitosa = iniciarConexion();

            if (!conexionExitosa)
            {
                terminarConexion();
                return null;
            }

            MySql.Data.MySqlClient.MySqlCommand comando;
            comando = ObjConexion.CreateCommand();
            comando.CommandText = consultaSql;

            MySqlDataReader reader = comando.ExecuteReader();

            if (!reader.HasRows)
            { //si el reader esta vacio, es qe no encontro a esa opcion de respuesta evaluada
                terminarConexion();
                return null;
            }

            while (reader.Read())
            {
                string nomOpcionResp = reader["nombre"].ToString();
                string codigo = reader["codigo"].ToString();

                retorno_OpRespuesta = gestorOpcionResp.instanciarOpcionDeRespuesta(nomOpcionResp, codigo);
            }

            terminarConexion();

            return retorno_OpRespuesta;
        }
        /*
         * - RecuperarOpcionesEvaludas tiene la misión de recuperar las opciones evaluadas para una pregunta puntual
         *   de a la BASE DE DATOS
         */
        public List<Opciones> recuperarOpciones(Pregunta pregAsociada)
        {
            bool conexionExitosa;
            GestorOpRespuesta gestionOpciones = new GestorOpRespuesta();
            List<Opciones> listaDeOpciones = new List<Opciones>();//Para el retorno de datos

            string consultaSql = "SELECT DISTINCT op.nombre, pr_op.ponderacion, opr_op.ordenDeVisualizacion "
            + "FROM `pregunta_opciones` AS pr_op "
            + "JOIN `pregunta` AS pr on (pr_op.Pregunta_codigo = pr.codigo AND pr.nombre = '" + pregAsociada.Nombre + "' AND pr.pregunta = '" + pregAsociada.Preg_aRealizar + "') "
            + "JOIN `opciones` op on (pr_op.Opciones_idopciones = op.idopciones) "
            + "JOIN `opcion de respuesta_opciones` opr_op on (pr_op.Opciones_idopciones = opr_op.Opciones_idopciones) "
            + "GROUP BY nombre;";

            //llamamos al metodo "iniciar conexion"
            conexionExitosa = iniciarConexion();

            //Evaluamos si la conexion se realizo con exito
            if (!conexionExitosa)
            {
                MessageBox.Show("Fallo la conexion con la base de datos");
                terminarConexion();
                return null;
            }

            MySql.Data.MySqlClient.MySqlCommand comando;
            comando = ObjConexion.CreateCommand();
            comando.CommandText = consultaSql;

            MySqlDataReader reader = comando.ExecuteReader();

            if (!reader.HasRows)
            { //si el reader esta vacio, es qe no encontro a ese candidato
                terminarConexion();
                return null;
            }

            while (reader.Read())
            {
                //opc.nombre, opR_opc.ordenDeVisualizacion, pr.`idPregunta Evaluada`
                string nomOpcion = reader["nombre"].ToString();
                int ponderacion = Int32.Parse(reader["ponderacion"].ToString());
                int ordenVisualizacion = Int32.Parse(reader["ordenDeVisualizacion"].ToString());

                Opciones preguntaEv = gestionOpciones.instanciarOpcion(nomOpcion, ponderacion, ordenVisualizacion);
                listaDeOpciones.Add(preguntaEv);
            }

            terminarConexion();

            return listaDeOpciones;
        }