Actualizar un DataGridview en VB.Net
Usuario
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...
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...
Experto
Hola nuevamente. 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
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
Usuario
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!
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!
Experto
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.
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.
Usuario
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 fiorella_3247@hotmail.com y encantada de poder recibir tu asesoramiento... y hasta podríamos cambiar opiniones y ayudas! XD
Saludos y Éxito...
Saludos y Éxito...