Actualizar un DataGridview en VB.Net

Buenas Noches Todoexpertos...
Mi duda es la siguiente: Estoy usando un DataGridView para cargar información de una Bd SQL Server ... Pero estoy teniendo problemas para actualizarlos luego de hacer una modificación en la bd ... La funcionalidad de mi aplicación va así: en una form hago la carga del datagrid con el siguiente código:
'Declaracion de variable
    Dim myCmd As SqlCommand  'para cargar la consulta SQL
    Dim myAdapter As SqlDataAdapter 'para cargar los datos porque el myCmd no funciona esa mierda!!!
    Dim myTable As New DataTable 'la tabla donde cargare los datos para pasarselos al DataGridView
    Dim OrigendeDatos As Windows.Forms.BindingSource 'encapsulo el origen de datos de un form
    Private Sub VentanaGrupo_Load(ByVal ...) Handles MyBase.Load
        Me.MdiParent = VentanaPrincipal 'Formulario MDI
        '***********************************************
        Call BD.conectarBD() 'LLAMAR AL MODULO PARA CONECTAR LA BD
        '***********************************************
        SQL = "SELECT * FROM PROYECTO 'Sentencia sql de consulta
        '*****************************
        Call BD.CargarDataGrid(OrigendeDatos, myAdapter, myTable, DataGridGrupo, SQL) 'LLAMAR AL MODULO PARA CARGAR EL DATAGRID
        '********************************************************
End Sub
End Class
estos son los modulos que uso:
Sub conectarBD()
        myConn = New SqlConnection("Initial Catalog=BD;Data Source=FIORELLA;Integrated Security=SSPI;")
        Try 'Tratamiento de errores
            myConn.Open()
            'MessageBox.Show("Conexión correcta")
        Catch ex As System.Runtime.InteropServices.COMException
            'MessageBox.Show("Conexión fallida")
        End Try
    End Sub
Sub CargarDataGrid(ByVal OrigendeDatos As Windows.Forms.BindingSource, ByVal myAdapter As SqlDataAdapter, ByVal myTable As DataTable, ByVal DataGridGrupo As Object, ByVal SQL As String)
        OrigendeDatos = New Windows.Forms.BindingSource 'instanciando a la clase. Creando una nueva instancia
        '*****************************************************************************************************
        myAdapter = New SqlDataAdapter(SQL, myConn) 'Crear un DataAdapter y
        'pasarle el comando para traer los registros
        '*****************************************************************************************************
        myAdapter.Fill(myTable) ' lleno la tabla con los registros que me generan myAdaptar
        '*****************************************************************************************************
        OrigendeDatos.DataSource = myTable 'Enlazar el DataTable al BindingSource
        '*****************************************************************************************************
        DataGridGrupo.DataSource = OrigendeDatos.DataSource 'Propiedades para el DataGridview
    End Sub
Y este form tiene unos botones que son de actualización... Y en el evento click del botón llamo a un nuevo form donde es que hago las sentencias insert, update ... Pero cuando hago los cambios me veo en la necesidad de cerrar el form donde cargo el datagrid para poder ver los cambios realizados... Intente hacer un update() o un refresh() en al momento de hacer las instrucciones sql ... Pero no resulta! Espero me puedan orientar...
Gracias...

1 Respuesta

Respuesta
1
Imagino que tu DataGridView se llama DataGridGrupo, ¿correcto?
Tambien en cada boton has de tener el llamado al form que hace insert, update....
Ya intentaste con poner esta instrucción DataGridGrupo. DataBind() después del llamado del form, para que te actualice el DataGridView
Ejemplo.
Private sub insertar_click(.....)Handles....
'llamas a form para insertar un nuevo registro
form.show()
'Aqui despues del llamado ya hiciste la prueba en poner esta instruccion para que actualice el GridView?
DataGridGrupo.DataBind()
end sub
Me cuentas
Hola gamo80... Sabes que ya valore tu respuesta anterior... Gracias!
Con respecto a tu respuesta ... Yo coloco en la ventana de inserción y modificación un botón de guardar (para guardar ejecutar las sentencias SQL) y en el evento click del botón coloco la siguientes instrucciones:
Try
            If ((CmdGuarda.ExecuteNonQuery()) <> 0) Then
                If Opcion = 1 Then
                    MsgBox("Registro Almacenado", MsgBoxStyle.OkOnly, "Nuevo Registro")
                Else
                    MsgBox("Registro Modificado", MsgBoxStyle.OkOnly, "Modificación Registro")
                End If
                Me.Close()  ' lo mando a actualizar si se ejecuto correctamente el CmdGuarda
                VentanaProyecto.DataGridProyecto.DataBind()
            End If
        Catch ex As Exception
            MsgBox("Operación Incompleta")
End Try
Pero... me dice que 'DataBind' no es miembro de 'System.Windows.Forms.DataGridView'
Saludito... Espero tu respuesta! ahh por cierto... Si quieres te paso mi correo!
Te comento el DataBind si existe solo que es para WebForms y no para Winforms, yo me equivoque.
El DataGridProyecto. ¿Refresh() ya lo probaste? Te pregunto
VentanaProyecto. DataGridProyecto. ¿Refresh() eso quiere decir que el refresh lo haces en otra ventana y no en la ventana donde esta el datagrid?
Si quieres mandame tu correo electrónico. Y ahí te puedo mandar código ejemplo que también te puede ayudar en otras cosas.
Hola gamo80 ... ahora que acabas de enviarme tu respuesta... lo acabo de resolver... Igualmente full gracias por tu colaboración y por molestarte en responderme mi correo es [email protected] y encantada de poder recibir tu asesoramiento... y hasta podríamos cambiar opiniones y ayudas! XD
Saludos y Éxito...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas