Principales respuestas
el Datagridview no se esta actualizando al ejecutar el UPDATE

Pregunta
-
buenas,
programo en vb.net
yo cargo los datos al datagridview con el siguiente método.
Public Sub CargarDatosDatagridview() Using cn As New SqlConnection(cadenaConexion) DgvDistribucion.DataSource = Nothing Dim consultaSQL As String = " Select Codigo_Usuario as Codigo, Nom_Usu as Nombre_Usaurio, caja as Caja from Tbla_Usuario" Dim adap As New SqlDataAdapter(consultaSQL, cn) adap.Fill(dv) Dim dve As DataView = dv.DefaultView DgvDistribucion.DataSource = dve End Using End Sub
yo lleno los Texbox de la siguiente manera
Public Sub llenarTexbox() Dim i As Integer i = DgvDistribucion.CurrentRow.Index txtcodigoUSU.Text = DgvDistribucion.Item(0, i).Value() txtNombreUSU.Text = DgvDistribucion.Item(1, i).Value() CBocaja.Text = DgvDistribucion.Item(2, i).Value() End Sub
cuando inicia el formulario los métodos de la siguiente manera.
Private Sub FrmDistribucionCaja_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load CargarDatosDatagridview() llenartexbox() End Sub
el Datagridview y los texbox, cargan nitido.
el problema es que estoy editando
If accion = "modificar" Then Using conexionx As New SqlConnection(cadenaConexion) conexionx.Open() Dim actualizar As String = "UPDATE Tbla_Usuario SET caja =@caja WHERE Codigo_Usuario=@Codigo_Usuario" Using comando As New SqlCommand(actualizar, conexionx) comando.Parameters.AddWithValue("@caja", CBocaja.Text.Trim()) comando.Parameters.AddWithValue("@Codigo_Usuario", Convert.ToInt64(txtcodigoUSU.Text.Trim())) comando.ExecuteNonQuery() End Using End Using MsgBox("Actualizado correctamente.", vbInformation, "Correcto") CargarDatosDatagridview() Me.Habilitar_Entrada(False) End If
el problema es que estoy editando, y cargo de nuevo los datos del Datagridview, me explico, cuando el formulario inicia por primera vez, carga 5 registros, y cuando edito y gurados los cambios y carga de nuevo el Datagridview, salen los 5 registros viejos y 5 registros más, es decir que salen 10.
al guardar los cambios del UPDATE, el Datagridview, no se está actualizado.
espero en Dios que puedan ayudarme.
- Editado EliannyRD martes, 23 de mayo de 2017 17:30
Respuestas
-
Hola,
lo puse en la respuesta, cambia la línea en negrita
Dim dve As New DataView = dv.DefaultView
Saludos
Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.
- Marcado como respuesta EliannyRD miércoles, 24 de mayo de 2017 16:29
-
resuelto 100x%
me quedó asi:
Public Sub CargarDatosDatagridview() Dim dv As New DataTable() Using cn As New SqlConnection(cadenaConexion) Dim consultaSQL As String = " Select Codigo_Usuario as Codigo, Nom_Usu as Nombre_Usaurio, caja as Caja from Tbla_Usuario" Dim adap As New SqlDataAdapter(consultaSQL, cn) adap.Fill(dv) 'Dim dve As DataView = dv.DefaultView End Using DgvDistribucion.DataSource = dv End Sub
- Marcado como respuesta EliannyRD miércoles, 24 de mayo de 2017 16:29
Todas las respuestas
-
-
-
Así a bote pronto, tiene buena pinta y da la sensación de que debería funcionar. Debe estar ocurriendo algo que no es evidente a simple vista. Para eso tenemos el debugger. Pon un punto de ruptura y sigue la ejecución paso a paso, viendo lo que hace en cada momento y lo que valen las variables, a ver si encuentras algo que no concuerde con lo que se supone que debería estar ocurriendo. También, en el momento de pasar el ExecuteNonQuery, vete a la base de datos y examina lo que hay a ver si es lo que estaba previsto. Y justo después de ejecutar el Fill, examina el datatable (con el visor de datos del debugger) a ver si ha cargado lo que debe. Con un poco de suerte, a lo largo de este proceso se debería identificar cuál es el punto exacto en el que no ocurre lo que se esperaba. Si a consecuencia del proceso anterior se llega a la conclusión de que el servidor no lee o graba lo que debería, una herramienta más que se puede usar es el Profiler de SQL Server, que sirve para capturar las sentencias recibidas, y sus parámetros, y ahí se puede verificar si efectivamente llega lo que creíamos que debería llegar, o en caso contrario dónde está la discrepancia.
-
Hola
Debes instancias tu DataView, por ello se están quedando los registros y esta llenando nuevamente en vez de limpiar
Public Sub CargarDatosDatagridview() Using cn As New SqlConnection(cadenaConexion) DgvDistribucion.DataSource = Nothing Dim consultaSQL As String = " Select Codigo_Usuario as Codigo, Nom_Usu as Nombre_Usaurio, caja as Caja from Tbla_Usuario" Dim adap As New SqlDataAdapter(consultaSQL, cn) adap.Fill(dv) Dim dve As New DataView = dv.DefaultView DgvDistribucion.DataSource = dve End Using End Sub
Saludos
Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.
-
-
Hola,
lo puse en la respuesta, cambia la línea en negrita
Dim dve As New DataView = dv.DefaultView
Saludos
Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.
- Marcado como respuesta EliannyRD miércoles, 24 de mayo de 2017 16:29
-
-
resuelto 100x%
me quedó asi:
Public Sub CargarDatosDatagridview() Dim dv As New DataTable() Using cn As New SqlConnection(cadenaConexion) Dim consultaSQL As String = " Select Codigo_Usuario as Codigo, Nom_Usu as Nombre_Usaurio, caja as Caja from Tbla_Usuario" Dim adap As New SqlDataAdapter(consultaSQL, cn) adap.Fill(dv) 'Dim dve As DataView = dv.DefaultView End Using DgvDistribucion.DataSource = dv End Sub
- Marcado como respuesta EliannyRD miércoles, 24 de mayo de 2017 16:29