No consigo pasar un DataTable a un DataGridView

Iniciado por |Miguel|, 26 Abril 2012, 16:30 PM

0 Miembros y 4 Visitantes están viendo este tema.

|Miguel|

Bueno... pues eso..

Tengo unos datos en un data table y quiero visualizarlos en un DataGridView. Lo que veo por todos lados es esto:
Código (vbnet) [Seleccionar]

grdTiendas.DataSource = datos.DefaultView

Pero lo que hace es si tengo 5 filas en el datatable, me pinta 5 filas pero vacías (aunque con el debugger veo que hay datos en el datatable...)

No sé por dónde tirar...
Saludos.
gracias

HdM

Buenas.

¿Podrías poner el código de cómo cargas datos en la tabla? Lo que es curioso es que si tienes 5 registros, al asignar el datasource, te cargue 5 filas. No creo no, pero no tendrás en el grid el mismo forecolor y backcolor, ¿verdad? :rolleyes: :rolleyes:

Saludos.

- Nice to see you again -

|Miguel|

Cita de: Bulld0z3r en 26 Abril 2012, 20:27 PMforecolor y backcolor, ¿verdad? :rolleyes: :rolleyes:
Soy novato, no gilipollas.. jajaja XD Se agradece la ayuda, de hecho fue lo primero que pensé pero no tendría sentido (en ningún momento cambio ningún color), y además si meto un bucle for que recorra el datatable y el grid celda a celda sí funciona... pero queda un código larguísimo y cuando lo vea el jefe me va a mandar a mi casa xD

El código que uso no lo tengo aquí, está en la oficina, pero era algo como
Código (vbnet) [Seleccionar]
dReader.ExecuteCommand
datos.Load(dReader)
'Ahora hablo de memoria, podría estar poniendo una burrada! XD

Donde dReader era un elemento Data.Reader

el dataset datos tiene todos los datos bien cargados, de eso estoy seguro por que usando la forma cutre va bien, y porque con el debugger me salen tb los datos que tienen que salir...

Saludos.

HdM

#3
Cita de: |Miguel| en 26 Abril 2012, 21:05 PM
Soy novato, no gilipollas.. jajaja XD.

Jejeje, doy rotundamente por hecho que no lo eres en absoluto, pero es que a veces hay detalles absurdos que se pasan por alto, te pones a darle vueltas al problema desesperándote y luego resulta que es cualquier tontería (a mi me suele pasarrrrr  ;D ;D)

¿Has probado utilizando un dataadapter?

Código (vbnet) [Seleccionar]

dt = New DataTable
da = New DataAdapter("SELECT * FROM tutabla", conexionatubd)
da.Fill(data)
dataGrid.DataSource = data


Saludos.

- Nice to see you again -

|Miguel|

Cita de: Bulld0z3r en 26 Abril 2012, 21:28 PM
¿Has probado utilizando un dataadapter?
Ni sé lo que son, pero me lo apunto y mañana te cuento.
Gracias por contestar tan rápido!

seba123neo

otra opcion es recorrer el datatable y cargar el datagrid a mano.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

|Miguel|

Cita de: seba123neo en 26 Abril 2012, 23:20 PM
otra opcion es recorrer el datatable y cargar el datagrid a mano.

saludos.
Exacto, eso es lo que hago ahora, pero me parece una opción cutre y cuando la vea el jefe me va a mandar a tomar por el c***, y con razón XD

seba123neo

Cita de: |Miguel| en 26 Abril 2012, 23:26 PM
Exacto, eso es lo que hago ahora, pero me parece una opción cutre y cuando la vea el jefe me va a mandar a tomar por el c***, y con razón XD

yo no lo veo para nada cutre, depende como se vea, ya que si necesitas manipular valores mientras vas cargando los datos es necesario hacerlo asi, por ejemplo hacer calculos entre los valores de varios campos del datatable y asi asignarlo a una columna del datagrid, o si necesitas llenar algun array externo con valores de algun camp del datatable y al mismo tiempo hacer calculos debes hacerlo de esa forma ya que de la otra forma no se podrian manipular ningun dato ya que se asignan directamente al datagrid.

saludos.
La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson

|Miguel|

Cita de: |Miguel| en 26 Abril 2012, 21:31 PM
Ni sé lo que son, pero me lo apunto y mañana te cuento.
Gracias por contestar tan rápido!
Al final he cambiado a dataAdapter por otro tema y me funciona todo perfecto.
Gracias.

seba123neo, en esa posibilidad no había pensado. En el caso que comentas, si tendría sentido utilizar el bucle que había usado. En mi caso actual no, porque los datos solo se modifcan desde el DataGrid, aunque se podría dejar el bucle por si acaso hubiera alguna ampliación futura.

Saludos!