private int agregarFuncionalidades(string rol)
        {
            int           i        = 0;
            List <int>    ChkedRow = new List <int>();
            Funcionalidad f        = new Funcionalidad();
            Rol           r        = new Rol();

            try
            {
                for (i = 1; i <= dataGridView1.RowCount; i++)
                {
                    //si esta sin check y esta entre los idsFunc hago un delete

                    //si esta sin checj y no esta entre los idsFunc no hago nada
                    if (Convert.ToBoolean(dataGridView1.Rows[i - 1].Cells["seleccion"].Value) == false)
                    {
                        //si esta sin check y esta entre los idsFunc hago un delete

                        //si esta sin checj y no esta entre los idsFunc no hago nada
                        if (f.getIdFuncionalidadXRol(rol, i) != 0)
                        {
                            Funcionalidad.delete(r.getidRolPorNombre(rol), i, f.getIdFuncionalidadXRol(rol, i));
                        }
                        //MessageBox.Show("Se modificó el rol " + textBox1.Text);
                        MessageBox.Show("Se modificó el rol ");
                        this.Close();
                    }
                    else
                    {
                        //si esta con check y esta entre los idsFunc no hago nada
                        //si esta con check y no esta entre los idsFunc hago un insert
                        if (f.getIdFuncionalidadXRol(rol, i) == 0)
                        {
                            Funcionalidad.insert(r.getidRolPorNombre(rol), i);
                        }
                        // ChkedRow.Add(i);
                    }
                }
                if (ChkedRow.Count == 0)
                {
                    return(0);
                }
                //foreach (int k in ChkedRow)
                //{
                //    int idFunc=Int32.Parse(dataGridView1.Rows[k].Cells[1].Value.ToString());
                //    int idFuncXRol=Int32.Parse(dataGridView1.Rows[k].Cells[2].Value.ToString());
                //    Funcionalidad.update(idRol, idFunc,idFuncXRol);
                //}
                MessageBox.Show("Rol y funcionalidades actualizados Correctamente!");
                modificar_rol af = new modificar_rol();
                af.Close();
            }
            catch (Exception e) { return(0); }
            return(0);
        }
        private void BuscarFuncionalidadesPorRol(String rol)
        {
            List <int>    ChkedRow = new List <int>();
            Funcionalidad f        = new Funcionalidad();
            Rol           r        = new Rol();

            int i = 0;

            try
            {
                List <Funcionalidad> fs = new List <Funcionalidad>();
                for (i = 1; i <= dataGridView1.RowCount; i++)
                {
                    if (f.getIdFuncionalidadesPorRol(rol).Contains(i))
                    {
                        dataGridView1.Rows[i - 1].Cells["idRolXFunc"].Value = f.getIdFuncionalidadXRol(rol, i);
                        int idRol = r.getidRolPorNombre(rol);
                        if (r.estaHabilitado(idRol))
                        {
                            checkBox1.Checked = true;
                        }
                        //dataGridView1.Rows[i - 1].Cells["idRolXFunc"].Value = f.getFuncionalidadesPorRol(rol).ElementAt(i).IdRolXFunc;
                        //lo voy seleccionando al q cumpla
                        dataGridView1.Rows[i - 1].Cells["seleccion"].Value = true;
                    }
                }
            }
            catch (Exception e) { }
        }
        //LA AGREGUUE YOOO

        public static List <Funcionalidad> getFuncionalidadesXRol(string rol)
        {
            List <Funcionalidad> funcionalidadesRol = new List <Funcionalidad>();
            Rol r     = new Rol();
            int idRol = r.getidRolPorNombre(rol);

            using (SqlConnection Conexion = BDComun.ObtenerConexion())
            {
                SqlCommand    Comando = new SqlCommand(String.Format("SELECT DISTINCT funcionalidad_descripcion from pero_compila.Funcionalidad f join pero_compila.FuncionalidadXRol fxr on(f.funcionalidad_Id=fxr.funcionalidadXRol_funcionalidad) where fxr.funcionalidadXRol_rol='{0}'", idRol), Conexion);
                SqlDataReader reader  = Comando.ExecuteReader();

                while (reader.Read())
                {
                    Funcionalidad f = new Funcionalidad();
                    //  f.IdFuncionalidad = reader.GetInt32(0);
                    f.descripcion = reader.GetString(0);
                    //f.IdRolXFunc = reader.GetInt32(2);
                    funcionalidadesRol.Add(f);
                }
                Conexion.Close();
            }
            return(funcionalidadesRol);
        }
        public int getIdFuncionalidadXRol(String rol, int idFunc)
        {
            //  List<int> funcionalidadesIds = new List<int>();
            Rol r     = new Rol();
            int idRol = r.getidRolPorNombre(rol);
            int f     = 0;

            using (SqlConnection Conexion = BDComun.ObtenerConexion())
            {
                SqlCommand    Comando = new SqlCommand(String.Format("SELECT DISTINCT funcionalidad_Id,funcionalidad_descripcion,fxr.funcionalidadXRol_Id from pero_compila.Funcionalidad f join pero_compila.FuncionalidadXRol fxr on(f.funcionalidad_Id=fxr.funcionalidadXRol_funcionalidad) where fxr.funcionalidadXRol_rol='{0}' and  fxr.funcionalidadXRol_funcionalidad='{1}'", idRol, idFunc), Conexion);
                SqlDataReader reader  = Comando.ExecuteReader();

                while (reader.Read())
                {
                    //f.IdFuncionalidad = reader.GetInt32(0);
                    // f.descripcion = reader.GetString(1);
                    f = reader.GetInt32(2);
                    //funcionalidadesIds.Add(f);
                }
                Conexion.Close();
            }
            return(f);
        }