/* * - RecuperarCandidatos tiene la misión de recuperar los datos de uno o varios candidatos */ public List<Candidato> recuperarCandidatos(string TipoDoc = null, string NroDoc = null, string nombre = null, string apellido = null, int nroEmp = 0, int nroCand = 0) { bool conexionExitosa; GestorCandidatos gestorCandidatos = new GestorCandidatos(); List<string> listaConsultas = new List<string>(); //Para componer la consultaSql List<Candidato> listaCandidatos = new List<Candidato>();//Para el retorno de datos string consultaSql; //Llamamos al metodo "iniciarConexion" conexionExitosa = iniciarConexion(); //Evaluamos si la conexion se realizo con exito if (!conexionExitosa) { MessageBox.Show("No se pudo realizar la conexión con la Base de Datos"); terminarConexion(); return null; } //Creamos un adaptador llamado "comando" para realizar la consultaSql que definimos mas arriba MySql.Data.MySqlClient.MySqlCommand comando; comando = ObjConexion.CreateCommand(); //Si todo es por defecto NULL se buscan y retornan TODOS los candidatos que haya en la Base de Datos if (TipoDoc == null && NroDoc == null && nombre == null && apellido == null && nroEmp == 0 && nroCand == 0) { consultaSql = "SELECT * FROM candidato"; comando.CommandText = consultaSql;//En el adaptador comando le hacemos un asignacion en su atributo CommandText de la consultaSql //Se hace la ejecucion del comando con el metodo ExecuterReader //y se lo asigna a una variable reader que contendra los resultados de la busqueda en la base de datos MySqlDataReader reader = comando.ExecuteReader(); if (!reader.HasRows) { //si el reader esta vacio, es que no se encontraron datos para la consulta realizada MessageBox.Show("No se encontro ningún candidato en la Base de Datos"); terminarConexion(); return null; } //Si el reader contiene datos, se realiza la lectura de todos los ellos. while (reader.Read()) { string nom = reader["nombre"].ToString(); string ape = reader["apellido"].ToString(); string tipoDoc = reader["tipo documento"].ToString(); string nroDoc = reader["nro documento"].ToString(); int nroCandidato; if (reader["nroCandidato"].ToString() == "")//Se contempla la posibilidad de que este número sea nulo nroCandidato = 0; else nroCandidato = Int32.Parse(reader["nroCandidato"].ToString());//Se lo transforma a un numero entero int nroEmpleado; if (reader["nroEmpleado"].ToString() == "")//Se contempla la posibilidad de que este número sea nulo nroEmpleado = 0; else nroEmpleado = Int32.Parse(reader["nroEmpleado"].ToString());//Se lo transforma a un numero entero //Llamamos al gestor de candidatos para instanciar el candidato que se obtuvo de la base de datos Candidato objCandidato = gestorCandidatos.instanciarCandidato(nom, ape, tipoDoc, nroDoc, nroCandidato, nroEmpleado); //El retorno del metodo del gestor es introducido en la lista de candidatos listaCandidatos.Add(objCandidato); } }//fin de if(TODO ES NULL), osea si no se pusieron parametros de busqueda //En caso de haber algún parametro diferente de NULL. Se compondra la consulta para la base de datos else { consultaSql = "SELECT * FROM `candidato` WHERE ";//Cabecera de la consulta sql //A continuacion se contemplan todas las posibilidades en fragmentos de consulta if (TipoDoc != null) listaConsultas.Add("`tipo documento` LIKE '%" + TipoDoc + "%'"); if (NroDoc != null) listaConsultas.Add("`nro documento` LIKE '%" + NroDoc + "%'"); if (nombre != null) listaConsultas.Add("`nombre` LIKE '%" + nombre + "%'"); if (apellido != null) listaConsultas.Add("`apellido` LIKE '%" + apellido + "%'"); if (nroEmp != 0) listaConsultas.Add("`nroEmpleado` LIKE '%" + nroEmp + "%'"); if (nroCand != 0) listaConsultas.Add("`nroCandidato` LIKE '%" + nroCand + "%'"); //Se agregan los fragmentos de consulta a la variable "consultaSql" for (int i = 0; i != (listaConsultas.Count - 1); i++) { consultaSql += listaConsultas[i] + " AND "; } //Se concluye la declaracion de la consulta consultaSql += listaConsultas[(listaConsultas.Count - 1)] + ";"; comando.CommandText = consultaSql; //asignamos la consulta recien creada a el atributo CommandText (donde se guarda la consulta de un obj de tipo comando) //Se hace la ejecucion del comando con el metodo ExecuterReader //y se lo asigna a una variable reader que contendra los resultados de la busqueda en la base de datos MySqlDataReader reader = comando.ExecuteReader(); if (!reader.HasRows) { //si el reader esta vacio, es qe no encontro a ese candidato MessageBox.Show("No se encontro un candidato solicitado"); terminarConexion(); return null; } //Si el reader contiene datos, se realiza la lectura de todos los ellos. while (reader.Read()) { string nom = reader["nombre"].ToString(); string ape = reader["apellido"].ToString(); string tipoDoc = reader["tipo documento"].ToString(); string nroDoc = reader["nro documento"].ToString(); int nroCandidato; if (reader["nroCandidato"].ToString() == "")//Se contempla la posibilidad de que este número sea nulo nroCandidato = 0; else nroCandidato = Int32.Parse(reader["nroCandidato"].ToString());//Se lo transforma a un numero entero int nroEmpleado; if (reader["nroEmpleado"].ToString() == "")//Se contempla la posibilidad de que este número sea nulo nroEmpleado = 0; else nroEmpleado = Int32.Parse(reader["nroEmpleado"].ToString());//Se lo transforma a un numero entero //Llamamos al gestor de candidatos para instanciar el candidato que se obtuvo de la base de datos Candidato objCandidato = gestorCandidatos.instanciarCandidato(nom, ape, tipoDoc, nroDoc, nroCandidato, nroEmpleado); //El retorno del metodo del gestor es introducido en la lista de candidatos listaCandidatos.Add(objCandidato); } } terminarConexion(); return listaCandidatos; }
/* * - RecuperarCandidato tiene la misión de recuperar los datos de un candidato puntual */ public List<Candidato> recuperarCandidato(string TipoDoc, string NroDoc) { bool conexionExitosa; GestorCandidatos gestorCandidatos = new GestorCandidatos(); List<Candidato> listaCandidatos = new List<Candidato>();//para el retorno de datos string consultaSql = "SELECT * FROM candidato WHERE `nro documento` = '" + NroDoc + "' AND `tipo documento` = '" + TipoDoc + "';"; //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; } //Creamos un adaptador llamado "comando" para realizar la consultaSql que definimos mas arriba MySql.Data.MySqlClient.MySqlCommand comando; comando = ObjConexion.CreateCommand(); comando.CommandText = consultaSql;//En el adaptador comando hacemos un asignacion en su atributo CommandText de la consultaSql //Se hace la ejecucion del comando con el metodo ExecuterReader //y se lo asigna a una variable reader que contendra los resultados de la busqueda en la base de datos MySqlDataReader reader = comando.ExecuteReader(); if (!reader.HasRows) { //si el reader esta vacio, es que no se encontraron datos para la consulta realizada MessageBox.Show("El tipo y número de documento no corresponden a un candidato registrado"); terminarConexion(); return null; } //Si el reader contiene datos, se realiza la lectura de todos los ellos. while (reader.Read()) { string nom = reader["nombre"].ToString(); string ape = reader["apellido"].ToString(); string tipoDoc = reader["tipo documento"].ToString(); string nroDoc = reader["nro documento"].ToString(); int nroCandidato; if (reader["nroCandidato"].ToString() == "")//Se contempla la posibilidad de que este número sea nulo nroCandidato = 0; else nroCandidato = Int32.Parse(reader["nroCandidato"].ToString());//Se lo transforma a un numero entero int nroEmpleado; if (reader["nroEmpleado"].ToString() == "")//Se contempla la posibilidad de que este número sea nulo nroEmpleado = 0; else nroEmpleado = Int32.Parse(reader["nroEmpleado"].ToString());//Se lo transforma a un numero entero //Llamamos al gestor de candidatos para instanciar el candidato que se obtuvo de la base de datos Candidato objCandidato = gestorCandidatos.instanciarCandidato(nom, ape, tipoDoc, nroDoc, nroCandidato, nroEmpleado); //El retorno del metodo del gestor es introducido en la lista de candidatos listaCandidatos.Add(objCandidato); } terminarConexion(); return listaCandidatos; }