Visual Basic.NET - Problema actualizando Datagridview desde otro form

 
Vista:

Problema actualizando Datagridview desde otro form

Publicado por Pakor (3 intervenciones) el 13/10/2010 16:50:44
Hola a todos. Estoy tonto de probar cosas.
Estoy desarrollando en VB.NET 2005 Express contra SQLSERVER 2005 express.

Tengo un formulario para hacer busquedas en la BD. Cuando realizo la consulta llamo a rellenar un datagridview con el siguiente codigo:

Public Sub lP_ActualizaBusqueda()
Dim flag As Boolean
Dim lcAdaptador as OleDb.OleDbDataAdapater
Dim lcTalba as DataTable

Try
flag = False
lcQuery = "Select ....."
lcAdaptador = New OleDb.OleDbDataAdapter(lcQuery, gmcConexion)
'Lo destroyo por si acaso este es el problema
If Not IsNothing(lcAdaptador) Then
lcAdaptador.Dispose()
lcAdaptador = Nothing
End If
lcAdaptador = New SqlClient.SqlDataAdapter(lcQuery, gmcSqlConexion)
lcAdaptador.AcceptChangesDuringFill = True
lcAdaptador.AcceptChangesDuringUpdate = True
'Borro y destruyo la tabla por si acaso
lcTabla.Clear()
lcTabla = Nothing
lcTabla = New DataTable
lcTabla.AcceptChanges()
dtgResultados.DataSource = Nothing
lcAdaptador.Fill(lcTabla)
dtgResultados.DataSource = lcTabla
dtgResultados.Refresh()
Exit Sub
Catch ex As Exception
MsgBox(ex.Message)
larsArchivos = Nothing
End Try
End Sub

Este metodo funciona cuando hago la busqueda en este formulario. Mediante un objeto paso los datos de la fila seleccionada a otro formulario, donde puedo modificar los valores del registro, y en ese formulario mando la orden de Update a la Base de Datos. Los valores se actualizan en la misma. En ese momento y desde ese formulario llamo a esta función para que vuelva a cargar el DataGridView con la nueva información (por eso esta declarada como public aqui), pero no me actuliza los datos del Datagridview, sigue poniendo los datos antiguos.
Sin embargo, cuando cierro el otro formulario y vuelvo a este, si pulso el boton de buscar si actualiza la informacion. (Este es la gestion del evento que llama al mismo metodo.

Private Sub cmdBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBuscar.Click
lp_actualizabusqueda()
End Sub

He probado a destruir la DateTable como podeis ver.
He probado a destruir el puntero a DataSource.
He probado a utilizar objetos SqlDataReader para hacer la consulta y rellenar la tabla.

Ya no se me ocurren muchas mas cosas. ¿Alguien tiene alguna idea?
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