Visual Basic.NET - Actualizar datagrid

 
Vista:

Actualizar datagrid

Publicado por sheila (1 intervención) el 18/06/2004 09:51:34
Hola a todos!
No se llevo mucho tiempo con .NET y espero que me podáis ayudar ya que no sé si se puede hacer lo que quiero.
El caso es que tengo un datagrid que se actualiza al pulsar un botón al que le he asignado el código:

Me.SqlDataAdapter1.Update(Me.DsTable)

Pero lo que me gustaría poder hacer es que el datagrid se actualizase sin necesidad de pulsar ningún botón, es decir, que por ejemplo al insertar una nueva fila en el datagrid que pulsando el ENTER o el TAB se actualice el datagrid, tanto en una INSERT como en una UPDATE o DELETE.
¿Se puede hacer esto? O necesito el botón ACEPTAR para actualizar los campos tanto en la tabla como en el datagrid?

Espero que me podáis ayudar.
Muchas gracias.
Un saludo,
Sheila.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Actualizar datagrid

Publicado por Edgar (1501 intervenciones) el 18/06/2004 14:50:10
Hola

Puedes hacer uso del evento CurrentCellChanged del datagrid para saber que cambiaste de celda en el grid. Una vez hecho esto puedes hacer el Update del Dataset, claro que sería recomendable determinar si ocurrió un cambio en la fuente de datos para realizar la actualización

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar datagrid

Publicado por Edgar (1501 intervenciones) el 18/06/2004 16:17:39
Edgar

Para saber si el DataSet a sufrido cambios puedes usar el método GetChanges del DataSet, el cual te devuelve otro DataSet con todos los cambios ocurridos en el primero.

Claro que esto te devuelve los cambios ocurridos despues de aceptar los cambios con el AcceptChages del DataSet, asi que debes ejecutarlo primero

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar datagrid

Publicado por Sheila (1 intervención) el 18/06/2004 17:31:03
Gracias por tu respuesta Edgar, pero el DataGrid no me reconoce el método CurrentCellChanged , necesito importar alguna clase?
Tu te refieres a que ponga el siguiente código:

MiDataGrid.CurrentCellChanged()
Me.SqlDataAdapter1.Update(Me.MiDataSet)

¿He entendido bien?

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar datagrid

Publicado por Edgar (1501 intervenciones) el 18/06/2004 17:43:38
Hola

No es un método.. es un evento, lo que debes hacer es crear un método que luzca más o menos asi

Private Sub Datagrid_CellChanged(sender as Object, e as EventHandler) Handles DataGrid1.CurrentCellChanged
.. Aqui actualizas tu tabla
End Sub

Luego, cada vez que cambies de celda, el datagrid se actualizará.. por eso te recomiendo que revises si existieron cambios para poder actualizar.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar datagrid

Publicado por Sheila (1 intervención) el 18/06/2004 18:54:33
Hola Edgar!

Gracias por tu ayuda, he hecho lo que me has dicho pero me sale el siguiente error al crear el método (no sé si es que hago algo mal, esto del .NET no es lo mio):
El método 'MiDataGrid_CurrentCellChanged' no puede administrar el evento 'CurrentCellChanged' porque no tienen la misma firma .

¿qué me falta?

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Actualizar datagrid

Publicado por Edgar (1501 intervenciones) el 18/06/2004 19:13:27
Hola

El problema es que el CurrentCellChanged espera un método con ciertos argumentos, y el método que creaste no los tiene. Fijate, cada evento está enlazado con un "delegado", el cual es por decirlo así, una interfaz de una función. Para que un método pueda ser utilizado por un evento, debe recibir los mismos argumentos y retornar un valor del mismo tipo.

Para que te funcione correctamente, el método debe recibir como parámetro un objeto (generalmente se le da el nombre de sender) y un objeto de tipo EventArgs (generalmente se le da el nombde de e)

Un ejemplo sería este:

' Raise the event when focus on DataGrid cell changes.
Protected Sub Grid_CurCellChange(sender As Object, e As EventArgs) Handles ....
' String variable used to show message.
Dim myString As String = "CurrentCellChanged event raised, cell focus is at "
' Get the co-ordinates of the focussed cell.
Dim myPoint As String = myDataGrid.CurrentCell.ColumnNumber + "," + myDataGrid.CurrentCell.RowNumber
' Create the alert message.
myString = myString + "(" + myPoint + ")"
' Show Co-ordinates when CurrentCellChanged event is raised.
MessageBox.Show(myString, "Current cell co-ordinates")
End Sub 'Grid_CurCellChange

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar