none
Guardar la eliminacion de registros en un datagridview RRS feed

  • Pregunta

  • Buen dia,

    Bueno tengo el siguiente problema estoy trabajando con una base de datos de access enlazada a un datagridview de visual studio 2008, en la interfase grafica tengo tambien un boton con el siguiente codigo:

    Private Sub guardar_productos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles guardar_productos.Click
            Dim msg = "Desea Guardar cambios?"
            ' Define a title for the message box. 
            Dim title = "Guardar cambios"
            Dim style = MsgBoxStyle.YesNo Or MsgBoxStyle.DefaultButton2 Or _
                        MsgBoxStyle.Information
            ' Display the message box and save the response, Yes or No. 
            Dim response = MsgBox(msg, style, title)
            ' Take some action based on the response. 
            If response = MsgBoxResult.Yes Then
                Try
                    Me.Validate()
                    Me.ProductosBindingSource1.EndEdit()
                    Me.ProductosTableAdapter1.Update(Me.InvenDataSet.Productos)
                    MsgBox("Guardado")
    
                Catch ex As Exception
                    MsgBox("No se pudo guardar")
                End Try
            End If
        End Sub

    con este codigo al agregar un registro en el datagridview se guarda en la base de datos, pero el problema viene a la hora de eliminar un registro, dentro del datagridview tengo una columna con el boton "Eliminar" con ese boton como su nombre indica elimina un registro del datagridview, pero al momento de yo querer guardar los cambios entra a la execpcion y muestra el mensaje "No se pudo guardar".

    alguna idea de como puedo corregir este error?

    gracias de antemano y espero su pronta respuesta

    miércoles, 13 de febrero de 2013 14:49

Respuestas

Todas las respuestas

  • y si haces

    Catch ex As Exception
          MsgBox(String.Format("No se pudo guardar Error: {0}", ex.Message))
    End Try

    esto para ver que erro es el que se produce

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 14 de febrero de 2013 1:49
  • Buen dia, de antemano le agradeszco por responder, ya añadi esa linea de codigo y corri el programa, elimine un registro y en el mensaje de error aparecio lo siguiente:

    No se pudo guardar Error: concurrency violation: the deletecommand affected 0 of the expected 1 records

    alguna idea aque se deba esto?

    estube investigando mas sobre el tema y en una pagina mencionaba que eso tenia que ver con el archico .xsd segui los pasos que mencionaban porque si me faltaban comandos para el comando de eliminiar, pero pues me sigue apareciendo ese error

    gracias

    saludos

    jueves, 14 de febrero de 2013 14:38
  • ok buenos dias lo publico aqui para no hacer spam con el mismo codigo, tras investigar mas me di cuenta que uno de mis posibles errores es que no tenia una llave principal en la base de datos asi que cree un nuevo campo autonumerico llamado ID, y modificque mi codigo como me habia mencionado anteriormente el moderador Leandro Tuttini y quedo de la siguiente manera:

    Private Sub guardar_productos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles guardar_productos.Click
            Dim msg = "Desea Guardar cambios?"
            ' Define a title for the message box. 
            Dim title = "Guardar cambios"
            Dim style = MsgBoxStyle.YesNo Or MsgBoxStyle.DefaultButton2 Or MsgBoxStyle.Information
            ' Display the message box and save the response, Yes or No. 
            Dim response = MsgBox(msg, style, title)
            ' Take some action based on the response. 
            If response = MsgBoxResult.Yes Then
                Try
                    Me.Validate()
                    Me.ProductosBindingSource1.EndEdit()
                    Me.ProductosTableAdapter.Update(Me.InvenDataSet1.Productos)
                    MsgBox("Guardado")
    
                Catch ex As Exception
                    MsgBox(String.Format("No se pudo guardar Error: {0}", ex.Message))
                End Try
            End If
        End Sub

    corro el programa y nuevamente si guarda los registros que agrego pero a la hora de eliminarlos me aparece el siguiente error:

    No se pudo guardar Error: Datatype mismatch in critteria expression

    alguien me podria auxiliar a resolver esto?

    sábado, 23 de febrero de 2013 17:11
  • hola, mejor opte por cambiar toda la base de datos a sql y ya con el codigo anterior funciona bien :)

    saludos

    • Marcado como respuesta Sawaa martes, 26 de marzo de 2013 13:59
    martes, 26 de marzo de 2013 13:59