Problema con relación maestro-detalle

15/03/2006 - 23:36 por sharline78 | Informe spam
HOla, tengo un problema q no sé como resolver. El caso es q yo tengo
dos datagrid maestro-detalle. Cuándo yo pincho en una fila del
datagrid maestro me aparecen en el segundo datagrid las filas
asociadas. El problema es que para el datagrid
detalle, para el evento doble click, tengo un formulario en el q recojo
la clave del registro para poder modificar ese registro y demás. El
código es:

Private Sub dgLesiones_DoubleClick(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles dgLesiones.DoubleClick
Dim fila As New Integer
If dsdatos.Tables("Lesiones").Rows.Count = 0 Then Exit Sub
fila = dgLesiones.CurrentRowIndex
Dim frmLesiones As New frmLesiones
frmLesiones.id dsdatos.Tables("Lesiones").Rows(fila)("idlesion")
frmLesiones.ShowDialog()
CargarDatagrids(id)
End Sub

El problema q hay es q utilizo el valor de "fila" para acceder a la
posición del dataset y puede q n un momento en l datagrid detalle me
salga un único registro, con lo q "fila" valdría 0 según
dgLesiones.currentrowindex pero en el dataset podría ser la fila 5º
por ejemplo y entonces no devuelvo la clave correspondiente sino q
devuelvo la clave de la fila 0 del dataset. No sé si m he explicado
bien. A alguien se le ocurre como resolverlo? gracias.
 

Leer las respuestas

#1 sharline78
18/03/2006 - 15:02 | Informe spam
Hola, he solucionado el problema sacando el valor de la clave
directamente del datagrid:
dgLesiones.Item(dgLesiones.CurrentRowIndex, 0)

saludos.


ha escrito:

HOla, tengo un problema q no sé como resolver. El caso es q yo tengo
dos datagrid maestro-detalle. Cuándo yo pincho en una fila del
datagrid maestro me aparecen en el segundo datagrid las filas
asociadas. El problema es que para el datagrid
detalle, para el evento doble click, tengo un formulario en el q recojo
la clave del registro para poder modificar ese registro y demás. El
código es:

Private Sub dgLesiones_DoubleClick(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles dgLesiones.DoubleClick
Dim fila As New Integer
If dsdatos.Tables("Lesiones").Rows.Count = 0 Then Exit Sub
fila = dgLesiones.CurrentRowIndex
Dim frmLesiones As New frmLesiones
frmLesiones.id > dsdatos.Tables("Lesiones").Rows(fila)("idlesion")
frmLesiones.ShowDialog()
CargarDatagrids(id)
End Sub

El problema q hay es q utilizo el valor de "fila" para acceder a la
posición del dataset y puede q n un momento en l datagrid detalle me
salga un único registro, con lo q "fila" valdría 0 según
dgLesiones.currentrowindex pero en el dataset podría ser la fila 5º
por ejemplo y entonces no devuelvo la clave correspondiente sino q
devuelvo la clave de la fila 0 del dataset. No sé si m he explicado
bien. A alguien se le ocurre como resolverlo? gracias.

Preguntas similares