/// <summary>
        /// crea una estudiante nuevo
        /// </summary>
        /// <param name="dato"></param>
        /// Se crea un dato de tipo EstudianteBeneficiario
        public void nuevo(EstudianteBeneficiario dato)
        {
            using (Database db = DatabaseFactory.openDatabase("matricula_web_db"))
            {
                //Agregamos la instruccion con el stored procedure
                MySqlCommand comando = new MySqlCommand("sp_estudiante_beneficiario_INSERT");
                comando.CommandType = CommandType.StoredProcedure;
                 
                comando.Parameters.AddWithValue("p_idEstudiante", dato.idEstudiante);	
                comando.Parameters.AddWithValue("p_apellido1", dato.apellido1);	
                comando.Parameters.AddWithValue("p_apellido2", dato.apellido2);	
                comando.Parameters.AddWithValue("p_nombre", dato.nombre);	
                comando.Parameters.AddWithValue("p_identificacion", dato.identificacion);	
                comando.Parameters.AddWithValue("p_sexo", dato.sexo);
                comando.Parameters.AddWithValue("p_fechaNacimiento", dato.fechaNacimiento);
	            comando.Parameters.AddWithValue("p_estadoCivil", dato.estadoCivil);	
                comando.Parameters.AddWithValue("p_direccion", dato.direccion);	
                comando.Parameters.AddWithValue("p_provincia", dato.provincia.idProvincia );	
                comando.Parameters.AddWithValue("p_canton", dato.canton.idCanton );	
                comando.Parameters.AddWithValue("p_distrito", dato.distrito.idDistrito );	 
                comando.Parameters.AddWithValue("p_nacionalidad", dato.nacionalidad.idNacionalidad );
	            comando.Parameters.AddWithValue("p_email", dato.email);
                comando.Parameters.AddWithValue("p_relacion", dato.relacion);
                comando.Parameters.AddWithValue("p_telefonoOficina", dato.telefonoOficina);	
                comando.Parameters.AddWithValue("p_telefonoCelular", dato.telefonoCelular);	
                comando.Parameters.AddWithValue("p_telefonoCasa", dato.telefonoCasa);	 
	            comando.Parameters.AddWithValue("p_comentario", dato.comentario);	  
                comando.Parameters.AddWithValue("p_estado", dato.estado);	
                comando.Parameters.AddWithValue("p_usuarioCreacion", dato.usuarioCreacion);	 
                     
                db.executeNonQuery(comando);
            }
        }
 /// <summary>diante
 /// modifica un EstudianteBeneficiario
 /// </summary>
 /// <param name="dato"></param>
 public void modificar(EstudianteBeneficiario dato)
 {
     if (this.existe(dato))
     {
         this.estudianteBeneficiarioDao.modificar(dato);
     }
     else
     {
         throw new Exception("No existe el registro.");
     }
 }
 /// <summary>
 /// crea un EstudianteBeneficiario nuevo
 /// </summary>
 /// <param name="dato"></param>
 public void nuevo(EstudianteBeneficiario dato)
 {
     if (!this.existe(dato))
     {
         this.estudianteBeneficiarioDao.nuevo(dato);
     }
     else
     {
         throw new Exception("Ya existe el registro.");
     }
 }
 /// <summary>
 /// modifica un estudiante
 /// </summary>
 /// <param name="dato"></param>        
 public void modificar(EstudianteBeneficiario dato)
 {
     try
     {
         using (Database db = DatabaseFactory.openDatabase("matricula_web_db"))
         {
             MySqlCommand comando = new MySqlCommand("sp_estudiante_beneficiario_UPDATE");
             comando.CommandType = CommandType.StoredProcedure;
             comando.Parameters.AddWithValue("p_idEstudianteBeneficiario", dato.idEstudianteBeneficiario);
             comando.Parameters.AddWithValue("p_idEstudiante", dato.idEstudiante);
             comando.Parameters.AddWithValue("p_apellido1", dato.apellido1);
             comando.Parameters.AddWithValue("p_apellido2", dato.apellido2);
             comando.Parameters.AddWithValue("p_nombre", dato.nombre);
             comando.Parameters.AddWithValue("p_identificacion", dato.identificacion);
             comando.Parameters.AddWithValue("p_sexo", dato.sexo);
             comando.Parameters.AddWithValue("p_fechaNacimiento", dato.fechaNacimiento);
             comando.Parameters.AddWithValue("p_estadoCivil", dato.estadoCivil);
             comando.Parameters.AddWithValue("p_direccion", dato.direccion);
             comando.Parameters.AddWithValue("p_provincia", dato.provincia.idProvincia);
             comando.Parameters.AddWithValue("p_canton", dato.canton.idCanton);
             comando.Parameters.AddWithValue("p_distrito", dato.distrito.idDistrito); 
             comando.Parameters.AddWithValue("p_nacionalidad", dato.nacionalidad.idNacionalidad); ;
             comando.Parameters.AddWithValue("p_email", dato.email);
             comando.Parameters.AddWithValue("p_relacion", dato.relacion);
             comando.Parameters.AddWithValue("p_telefonoOficina", dato.telefonoOficina);
             comando.Parameters.AddWithValue("p_telefonoCelular", dato.telefonoCelular);
             comando.Parameters.AddWithValue("p_telefonoCasa", dato.telefonoCasa); 
             comando.Parameters.AddWithValue("p_comentario", dato.comentario); 
             comando.Parameters.AddWithValue("p_estado", dato.estado);
             comando.Parameters.AddWithValue("p_usuarioModificacion", dato.usuarioModificacion); 
             db.executeNonQuery(comando);
         }
     } catch(Exception ex)
     {
         string g = ex.Message;
     }
 }
        /// <summary>
        /// consulta una EstudianteBeneficiario
        /// </summary>
        /// <param name="dato"></param>
        /// <returns></returns>
        public EstudianteBeneficiario consultarId(EstudianteBeneficiario dato)
        {
            dato = this.estudianteBeneficiarioDao.consultarId(dato);
            if (dato != null)
            {
                if (dato.nacionalidad.idNacionalidad != 0)
                {
                    dato.nacionalidad = this.nacionalidadBo.consultarId(new Nacionalidad(dato.nacionalidad.idNacionalidad));
                } 

                if (dato.provincia.idProvincia != 0)
                {
                    dato.provincia = this.provinciaBo.consultarId(new Provincia(dato.provincia.idProvincia));
                    if (dato.provincia != null && dato.canton.idCanton != 0)
                    {
                        dato.canton = this.cantonBo.consultarId(new Canton(dato.provincia.idProvincia, dato.canton.idCanton));
                        if (dato.canton != null && dato.distrito.idDistrito != 0)
                        {
                            dato.distrito = this.distritoBo.consultarId(new Distrito(dato.provincia, dato.canton, dato.distrito.idDistrito));
                        }
                    }
                }
            }
            return dato;
        }
 /// <summary>
 /// verifica si existe un EstudianteBeneficiario
 /// </summary>
 /// <param name="dato"></param>
 /// <returns>TRUE si existe FALSE en caso contrario</returns>
 public bool existe(EstudianteBeneficiario dato)
 {
     return this.estudianteBeneficiarioDao.existe(dato);
 }
 /// <summary>
 /// verifica si existe un estudiante
 /// </summary>
 /// <param name="dato"></param>
 /// <returns>TRUE si existe FALSE en caso contrario</returns>
 public bool existe(EstudianteBeneficiario dato)
 {
     EstudianteBeneficiario objeto = new EstudianteBeneficiario();
     using (Database db = DatabaseFactory.openDatabase("matricula_web_db"))
     {
         MySqlCommand comando = new MySqlCommand("sp_estudiante_beneficiario_SELECT_ByID");
         comando.CommandType = CommandType.StoredProcedure;
         comando.Parameters.AddWithValue("p_idEstudianteBeneficiario", dato.idEstudianteBeneficiario);
         DataSet ds = db.executeReader(comando, "estudiante_responsable");
         if (ds.Tables[0].Rows.Count > 0)
         {
             return true;
         }
         else
         {
             return false;
         }
     } 
 }
                /// <summary>
        /// consulta todas los estudiantes
        /// </summary>
        /// <returns>List</returns>
        public List<EstudianteBeneficiario> consultarTodos()
        {
            using (Database db = DatabaseFactory.openDatabase("matricula_web_db"))
            {
                List<EstudianteBeneficiario> lista = new List<EstudianteBeneficiario>();
                MySqlCommand comando = new MySqlCommand("sp_estudiante_beneficiario_SELECT_all");
                comando.CommandType = CommandType.Text;
                //indicamos el nombre de la tabla
                DataSet ds = db.executeReader(comando, "estudiante_responsable");
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    EstudianteBeneficiario dato = new EstudianteBeneficiario();
                    if (!row["idEstudianteBeneficiario"].ToString().Equals(""))
                        dato.idEstudianteBeneficiario = Int32.Parse(row["idEstudianteBeneficiario"].ToString());
                    if (!row["idEstudiante"].ToString().Equals(""))
                        dato.idEstudiante = Int32.Parse(row["idEstudiante"].ToString());
                    if (!row["identificacion"].ToString().Equals(""))
                        dato.identificacion = row["identificacion"].ToString();
                    if (!row["apellido1"].ToString().Equals(""))
                        dato.apellido1 = row["apellido1"].ToString();
                    if (!row["apellido2"].ToString().Equals(""))
                        dato.apellido2 = row["apellido2"].ToString();
                    if (!row["nombre"].ToString().Equals(""))
                        dato.nombre = row["nombre"].ToString();
                    if (!row["sexo"].ToString().Equals(""))
                        dato.sexo = row["sexo"].ToString();

                    if (!row["relacion"].ToString().Equals(""))
                        dato.relacion = row["relacion"].ToString();
                    if (!row["fechaNacimiento"].ToString().Equals(""))
                        dato.fechaNacimiento = DateTime.Parse(row["fechaNacimiento"].ToString());
                    if (!row["estadoCivil"].ToString().Equals(""))
                        dato.estadoCivil = row["estadoCivil"].ToString();

                    if (!row["direccion"].ToString().Equals(""))
                        dato.direccion = row["direccion"].ToString();
                    if (!row["provincia"].ToString().Equals(""))
                        dato.provincia.idProvincia = Int32.Parse(row["provincia"].ToString());
                    if (!row["canton"].ToString().Equals(""))
                        dato.canton.idCanton = Int32.Parse(row["canton"].ToString());
                    if (!row["distrito"].ToString().Equals(""))
                        dato.distrito.idDistrito = Int32.Parse(row["distrito"].ToString());


                    if (!row["email"].ToString().Equals(""))
                        dato.email = row["email"].ToString();
                    if (!row["telefonoOficina"].ToString().Equals(""))
                        dato.telefonoOficina = row["telefonoOficina"].ToString();
                    if (!row["telefonoCelular"].ToString().Equals(""))
                        dato.telefonoCelular = row["telefonoCelular"].ToString();
                    if (!row["telefonoCasa"].ToString().Equals(""))
                        dato.telefonoCasa = row["telefonoCasa"].ToString();

                    if (!row["comentario"].ToString().Equals(""))
                        dato.comentario = row["comentario"].ToString();

                    if (!row["nacionalidad"].ToString().Equals(""))
                        dato.nacionalidad.idNacionalidad = Int32.Parse(row["nacionalidad"].ToString());

                    if (!row["estado"].ToString().Equals(""))
                        dato.estado = row["estado"].ToString();
                    //Para indicar los datos del usuario
                    if (!row["usuarioCreacion"].ToString().Equals(""))
                        dato.usuarioCreacion = row["usuarioCreacion"].ToString();
                    if (!row["usuarioModificacion"].ToString().Equals(""))
                        dato.usuarioModificacion = row["usuarioModificacion"].ToString();
                    //Indicamos los valores de las fechas
                    if (!row["fechaCreacion"].ToString().Equals(""))
                        dato.fechaCreacion = DateTime.Parse(row["fechaCreacion"].ToString());
                    if (!row["fechaModificacion"].ToString().Equals(""))
                        dato.fechaModificacion = DateTime.Parse(row["fechaModificacion"].ToString());
                    lista.Add(dato);
                }
                return lista;
            }
        }
        /// <summary>
        /// consulta una estudiante
        /// </summary>
        /// <param name="dato"></param>
        /// <returns></returns>
        public EstudianteBeneficiario consultarId(EstudianteBeneficiario dato)
        {

            using (Database db = DatabaseFactory.openDatabase("matricula_web_db"))
            {
                MySqlCommand comando = new MySqlCommand("sp_estudiante_beneficiario_SELECT_ByID");
                comando.CommandType = CommandType.StoredProcedure;
                comando.Parameters.AddWithValue("p_idEstudianteBeneficiario", dato.idEstudianteBeneficiario);
                //Despues del comando indicar el nombre de la tabla
                DataSet ds = db.executeReader(comando, "estudiante_responsable");
                if (ds.Tables[0].Rows.Count > 0)
                {
                    DataRow row = ds.Tables[0].Rows[0];
                    if (!row["idEstudianteBeneficiario"].ToString().Equals("")) 
                        dato.idEstudianteBeneficiario = Int32.Parse(row["idEstudianteBeneficiario"].ToString());
                    if (!row["idEstudiante"].ToString().Equals(""))
                        dato.idEstudiante = Int32.Parse(row["idEstudiante"].ToString());

                    if (!row["identificacion"].ToString().Equals("")) 
                        dato.identificacion = row["identificacion"].ToString();
                    if (!row["apellido1"].ToString().Equals("")) 
                        dato.apellido1 = row["apellido1"].ToString();
                    if (!row["apellido2"].ToString().Equals("")) 
                        dato.apellido2 = row["apellido2"].ToString();
                    if (!row["nombre"].ToString().Equals("")) 
                        dato.nombre = row["nombre"].ToString();
                    if (!row["sexo"].ToString().Equals("")) 
                        dato.sexo = row["sexo"].ToString();
                    
                    if (!row["fechaNacimiento"].ToString().Equals(""))
                        dato.fechaNacimiento = DateTime.Parse(row["fechaNacimiento"].ToString());
                    if (!row["estadoCivil"].ToString().Equals("")) 
                        dato.estadoCivil = row["estadoCivil"].ToString();

                    if (!row["direccion"].ToString().Equals("")) 
                        dato.direccion = row["direccion"].ToString();
                    if (!row["provincia"].ToString().Equals(""))
                        dato.provincia.idProvincia = Int32.Parse (row["provincia"].ToString());
                    if (!row["canton"].ToString().Equals(""))
                        dato.canton.idCanton  = Int32.Parse (row["canton"].ToString());
                    if (!row["distrito"].ToString().Equals(""))
                        dato.distrito.idDistrito  = Int32.Parse (row["distrito"].ToString());


                    if (!row["relacion"].ToString().Equals(""))
                        dato.relacion = row["relacion"].ToString();
                    if (!row["email"].ToString().Equals("")) 
                        dato.email = row["email"].ToString();
                    if (!row["telefonoOficina"].ToString().Equals("")) 
                        dato.telefonoOficina = row["telefonoOficina"].ToString();
                    if (!row["telefonoCelular"].ToString().Equals("")) 
                        dato.telefonoCelular = row["telefonoCelular"].ToString();
                    if (!row["telefonoCasa"].ToString().Equals("")) 
                        dato.telefonoCasa = row["telefonoCasa"].ToString();
                  
                    if (!row["comentario"].ToString().Equals("")) 
                        dato.comentario = row["comentario"].ToString(); 
                    if (!row["nacionalidad"].ToString().Equals(""))
                        dato.nacionalidad.idNacionalidad  = Int32.Parse (row["nacionalidad"].ToString());
                     
                    if (!row["estado"].ToString().Equals("")) 
                        dato.estado = row["estado"].ToString();
                    //Para indicar los datos del usuario
                    if (!row["usuarioCreacion"].ToString().Equals("")) 
                        dato.usuarioCreacion = row["usuarioCreacion"].ToString();
                    if (!row["usuarioModificacion"].ToString().Equals("")) 
                        dato.usuarioModificacion = row["usuarioModificacion"].ToString();
                    //Indicamos los valores de las fechas
                    if (!row["fechaCreacion"].ToString().Equals(""))
                        dato.fechaCreacion = DateTime.Parse(row["fechaCreacion"].ToString());
                    if (!row["fechaModificacion"].ToString().Equals(""))
                        dato.fechaModificacion = DateTime.Parse(row["fechaModificacion"].ToString());
                }
                else
                {
                    dato = null;
                }
                return dato;
            }
        }
 /// <summary>
 /// elimina un estudiante
 /// </summary>
 /// <param name="dato"></param>
 public void eliminar(EstudianteBeneficiario dato)
 {
     using (Database db = DatabaseFactory.openDatabase("matricula_web_db"))
     {
         MySqlCommand comando = new MySqlCommand("sp_estudiante_beneficiario_DELETE");
         comando.CommandType = CommandType.StoredProcedure;
         comando.Parameters.AddWithValue("p_idEstudianteBeneficiario", dato.idEstudianteBeneficiario);
         db.executeNonQuery(comando);
     }
 }
        /// <summary>
        /// actualiza un registro
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ASPxGridView1_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
        {
            try
            {
                EstudianteBeneficiario estudianteBeneficiario = new EstudianteBeneficiario();
                //llena el objeto con los valores
                estudianteBeneficiario.idEstudianteBeneficiario = Int32.Parse(e.NewValues["idEstudianteBeneficiario"].ToString());
                estudianteBeneficiario.identificacion = e.NewValues["identificacion"] == null ? null : e.NewValues["identificacion"].ToString();
                estudianteBeneficiario.nombre = e.NewValues["nombre"].ToString();
                estudianteBeneficiario.apellido1 = e.NewValues["apellido1"].ToString();
                estudianteBeneficiario.apellido2 = e.NewValues["apellido2"].ToString();
                estudianteBeneficiario.estadoCivil = e.NewValues["estadoCivil"].ToString();
                estudianteBeneficiario.sexo = e.NewValues["sexo"].ToString();
                if (e.NewValues["fechaNacimiento"] != null) { 
                    estudianteBeneficiario.fechaNacimiento = DateTime.Parse(e.NewValues["fechaNacimiento"].ToString());
                }
                estudianteBeneficiario.estado = e.NewValues["estado"].ToString();
                estudianteBeneficiario.relacion = e.NewValues["relacion"].ToString();

                ASPxPageControl Tabs = (ASPxPageControl)ASPxGridView1.FindEditFormTemplateControl("pageControl");
                ASPxComboBox cmbEstudiante = (ASPxComboBox)Tabs.FindControl("cmbEstudiante");
                ASPxComboBox cmbProvincia = (ASPxComboBox)Tabs.FindControl("provincia");
                ASPxComboBox cmbCanton = (ASPxComboBox)Tabs.FindControl("canton");
                ASPxComboBox cmbDistrito = (ASPxComboBox)Tabs.FindControl("distrito");
                estudianteBeneficiario.idEstudiante = Int32.Parse(cmbEstudiante.Value.ToString());
                if (cmbProvincia.Value != null)
                {
                    estudianteBeneficiario.provincia.idProvincia = Int32.Parse(cmbProvincia.Value.ToString());
                }
                if (cmbCanton.Value != null)
                {
                    estudianteBeneficiario.canton.idCanton = Int32.Parse(cmbCanton.Value.ToString());
                }
                if (cmbDistrito.Value != null)
                {
                    estudianteBeneficiario.distrito.idDistrito = Int32.Parse(cmbDistrito.Value.ToString());
                }

                estudianteBeneficiario.direccion = e.NewValues["direccion"].ToString();
                estudianteBeneficiario.nacionalidad.idNacionalidad = Int32.Parse(e.NewValues["nacionalidad"].ToString());

                estudianteBeneficiario.telefonoOficina = e.NewValues["telefonoOficina"] == null ? null : e.NewValues["telefonoOficina"].ToString();
                estudianteBeneficiario.telefonoCelular = e.NewValues["telefonoCelular"] == null ? null : e.NewValues["telefonoCelular"].ToString();
                estudianteBeneficiario.telefonoCasa = e.NewValues["telefonoCasa"] == null ? null : e.NewValues["telefonoCasa"].ToString();
                estudianteBeneficiario.email = e.NewValues["email"] == null ? null : e.NewValues["email"].ToString();

                //estudianteBeneficiario.comentario = e.NewValues["comentario"] == null ? null : e.NewValues["comentario"].ToString();

                estudianteBeneficiario.usuarioCreacion = Session["usuario"].ToString();

                estudianteBeneficiarioBo.modificar(estudianteBeneficiario);//agrega el objeto a la base de datos

                e.Cancel = true;//manejo de execpcion no controlada BUSCAR SOLUCION
                this.ASPxGridView1.CancelEdit();
                Session["entro"] = "NO";
                this.cargarDatos();//refescar los datos
            }
            catch (Exception ex)
            {
                Session["errorMessage"] = ex.Message;
            }
        }