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.
dgv_alumnos.columns tiene la lista de columnas a mostrar, puedes cambiar la propiedad visible a false, o puedes incluso removerlas.
Saludos
Gracias pero no he podido mostrar solo las columnas que necesito, hay alguna otra opcion? Gracias y saludos.-
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;
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