Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: zapala76 en 23 Diciembre 2011, 15:18 pm



Título: Llenar datagrid en c#
Publicado por: zapala76 en 23 Diciembre 2011, 15:18 pm
Hola, mi consulta es la siguiente: tengo un datagrid que quiero llenar con 4 columnas de una tabla en DB SqlServer, y el problema es que me trae todas las columnas que son 10, las que tienen datos los llena con dichos datos, y las demas las deja en blanco. Como sería para que solo me muestre solo las 4 columnas que yo quiero y no todas. Les dejo el codigo. Muhcas gracias y saludos.

El proyecto esta dividido en capas, una capa es Repositorio, que es de donde traigo los datos y el codigo es el siguiente:

public List<Alumnos> alumnosTodos()
        {
            List<Alumnos> traeAlumnos = new List<Alumnos>();
            string query_consulta = "select a.matricula as Matricula,a.nombre as Nombre, a.apellido as Apellido, a.dni as DNI, c.descripcion as Curso from alumnos a inner join cursos c on a.idcurso = c.idcurso order by matricula asc";
           

            if (Conexion.conectar())
            {
                DataTable dt_conAlumno = new DataTable();
                dt_conAlumno = Conexion.LeerTabla(query_consulta);

                foreach (DataRow row in dt_conAlumno.Rows)
                {
                    Alumnos al = new Alumnos();
                    al.Nro_Matricula = Convert.ToInt32(row["Matricula"]);
                    al.Nombre = row["Nombre"].ToString();
                    al.Apellido = row["Apellido"].ToString();
                    al.DNI = Convert.ToInt32(row["DNI"]);
                    al.Curso = row["Curso"].ToString();
                    traeAlumnos.Add(al);
                }
            }
            return traeAlumnos;
        }

Y en el formulario donde lleno el datagrid es:

private void Consulta_Alumno_Load(object sender, EventArgs e)
        {
            Rep_Alumno re = new Rep_Alumno();
            dgv_alumnos.DataSource = re.alumnosTodos();
           
        }

Saludos amigos.


Título: Re: Llenar datagrid en c#
Publicado por: Novlucker en 23 Diciembre 2011, 16:01 pm
dgv_alumnos.columns tiene la lista de columnas a mostrar, puedes cambiar la propiedad visible a false, o puedes incluso removerlas.

Saludos


Título: Re: Llenar datagrid en c#
Publicado por: zapala76 en 23 Diciembre 2011, 19:17 pm
Gracias pero no he podido mostrar solo las columnas que necesito, hay alguna otra opcion? Gracias y saludos.-


Título: Re: Llenar datagrid en c#
Publicado por: zapala76 en 23 Diciembre 2011, 20:08 pm
Listo, lo pude hacer, muchisimas gracias y saludos, Feliz Navidadddddddd!!!!!!!!!!

dgv_alumnos.DataSource = re.alumnosTodos(); 

            for (int x = 0; x < dgv_alumnos.Columns.Count; x++) {
                dgv_alumnos.Columns
  • .Visible = false;
            }

                dgv_alumnos.Columns["Nro_Matricula"].Visible = true;
                dgv_alumnos.Columns["Nombre"].Visible = true;
                dgv_alumnos.Columns["Apellido"].Visible = true;
                dgv_alumnos.Columns["DNI"].Visible = true;


Título: Re: Llenar datagrid en c#
Publicado por: _-Javier-_ en 31 Diciembre 2011, 18:07 pm
Hay una forma mas facil de hacer lo que quieres .

Aki Esta :
supongamos que mi clase se llame alumnos y quiero mostrar los datos
de los alumnos en un datagird entonces yo en mi caso haria esto :

1. ala clase la haria estatica (static)
2. este es mi metodo q me devuelve un datatable

public static datatable listado(){
datatable dt=new datatable();
sqldataadapter da;

// con es mi variable de conexion

//llamamos al metodo abrir conexion o solo abrimos la conexion con sql
abrir();
da=new sqldataadapter("select * from alumno",con)
da.fill(dt);
//ahora cerrarmos la conexion
cerrar();
return dt;

}




//============AHORA EN EL FORMULARIO DONDE STA EL GRID

creamos un void
void llenardatos(){
datagridview1.datasource=akinombredelaclase.nombremetodo.listado();


}


--=========en el evento load del formulario
llenardatos();



//en tu caso llamaria a tu capa.nombredeclase.metodo ,
//debes averle dado referencia
//buenoe so es todo
//ojala te sirva