SOS DataGridView y Columnas desordenadas

28/12/2006 - 19:13 por Carlos Gómez | Informe spam
Tengo 2 DataGridView (DGV) enlazados (maestro - detalle) todo por
codigo (es decir sin usar los asistentes)

El problema, que en el DGV detalle las columnas no aparecen en el orden
debido:

Si lo cargo por ejemplo con:
Select Campo0, Campo1, Campo2 FROM Tabla1
Lo que muestra es (por ejemplo)

Campo1 Campo0 Campo2
-
valorC1 valorC0 valorC2

Es decir, la columna Campo1 aparece la primera y la Campo0 la segunda,
¡y esto no es para nada lo correcto!

He comprobado que el Index de la columna Campo1 es 1 y el de la columna
Campo0 es 0,
es decir, que los datos son devueltos en el orden previsto, y tambien
que

DGVDetalle.Columns(0).Index = 0
DGVDetalle.Columns("Campo0").Index=0
DGVDetalle.Columns.IndexOf(DGVDetalle.Columns(0))=0
DGVDetalle.Columns.IndexOf(DGVDetalle.Columns("Campo0")=0

DGVDetalle.Columns(1).Index = 1
DGVDetalle.Columns("Campo1").Index=1
DGVDetalle.Columns.IndexOf(DGVDetalle.Columns(1)=1
DGVDetalle.Columns.IndexOf(DGVDetalle.Columns("Campo1")=1

por lo que la columna Campo0 debería aparecer en la primera posicion y
la Campo1 en la segunda, pero no es así: aparecen cambiados.

Alguien más le ha pasado esto?, ¿Puede ser un bug?, y en cualquier
caso, ¿existe alguna forma de re-ordenar las columnas (el orden
-desorden en este caso- que me da siempre es el mismo)?

Preguntas similare

Leer las respuestas

#1 Carlos Gómez
28/12/2006 - 20:25 | Informe spam
Probando probando, he descubierto que el problema aparece al agregar la
relacion en el dataset. Pongo el código:
'DGVMaestro y DGVDetalle son DataGridView
DGVMaestro.DataSource = masterBindingSource
DGVDetalle.DataSource = detailsBindingSource

'Carga un dataset ejecutando un procedimiento almacenado en
SQLServer
Dim p As New CGE.BaseDeDatos.ConsultasInterfaz()
Dim _Datos As DataSet
_Datos = p.LoadDataSetSP("Maestro_Detalle_SP")


_Datos.Tables(0).TableName = "TablaMaestro"
_Datos.Tables(1).TableName = "TablaDetalle"

Dim relation As New DataRelation( _
"RelacionMaestroDetalle", _
_Datos.Tables("TablaMaestro").Columns("Id"), _
_Datos.Tables("TablaDetalle").Columns("IdMaestro"))
_Datos.Relations.Add(relation)
masterBindingSource.DataSource = _Datos
masterBindingSource.DataMember = "TablaMaestro"

'Aqui empieza a barajar las columnas
-
detailsBindingSource.DataSource = masterBindingSource
detailsBindingSource.DataMember = "RelacionMaestroDetalle"
'--Fin Barajar columnas.

Si esas dos líneas las cambio por:
detailsBindingSource.DataSource = _Datos
detailsBindingSource.DataMember = "TablaDetalle"

las columnas aparecen en el orden correcto. Pero claro, ya no hay
relación maestro - detalle, y los dos datagridview son independientes
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida