none
Error al guardar - "Update requiere que UpdateCommand sea válido cuando se pasa la colección DataRow con filas modificadas." RRS feed

  • Pregunta

  • Hola a tod@s:

    Tengo un error al crear un update.

    Tengo unos texbox llamados txt_empresa, txt_nif, txt_direccion,  txt_telefono, etc. dichos textbox cargan datos mediante un BindingSource y TableAdaptarter llamados EmpresasBindingSource y EmpresasTableAdaptarter.

    Luego, en un botón (btn_guardar) le asigno el siguiente código:

     Private Sub btn_guardar_Click(sender As Object, e As EventArgs) Handles btn_guardar.Click
            If txt_empresa.Text = "" Then
                MsgBox("No ha escrito el nombre de la empresa", vbInformation, " ")
                txt_empresa.Focus()
            ElseIf txt_nif.Text = "" Then
                MsgBox("No ha ingresado el número de identificación físcal (NIF)", vbInformation, " ")
                txt_nif.Focus()
            ElseIf txt_direccion.Text = "" Then
                MsgBox("No ha escrito la dirección de la empresa", vbInformation, " ")
                txt_direccion.Focus()
            ElseIf txt_cp.Text = "" Then
                MsgBox("No ha escrito el código postal (CP)", vbInformation, " ")
                txt_cp.Focus()
            ElseIf txt_poblacion.Text = "" Then
                MsgBox("No ha escrito la población", vbInformation, " ")
                txt_poblacion.Focus()
            ElseIf cbo_provincia.Text = "" Then
                MsgBox("No ha seleccionado una provincia", vbInformation, " ")
                cbo_provincia.Focus()
            ElseIf txt_telefono.Text = "" Then
                MsgBox("No ha escrito un número de teléfono", vbInformation, " ")
                txt_telefono.Focus()
            Else
    
                If txt_movil.Text = "" Then
    
                    txt_movil.Text = "0"
    
                End If
    
               
                Me.Validate()
                Me.EmpresasBindingSource.EndEdit()
                Me.EmpresasTableAdapter.Update(Me.CSPDataSet)
                MsgBox("Datos guardados", vbInformation, " ")
    
       
            End If
        End Sub

    El problema lo tengo en el Update de EmpresasTableAdapter.
    A la hora de ejecutar en el DataSet (CSPDataSet)

    Dice en CSPDataSet.designer

     <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
             Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0"),  _
             Global.System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")>  _
            Public Overloads Overridable Function Update(ByVal dataSet As CSPDataSet) As Integer
                Return Me.Adapter.Update(dataSet, "Empresas")
            End Function
    Update requiere que UpdateCommand sea válido cuando se pasa la colección DataRow con filas modificadas.

    Los datos cargan desde un archivo de access (CSP.mdb). Lo he creado la conexión mediante el asistente de base de datos de Visual Basic .

    En el CSPDataSet tengo la tabla de "Empresas" y sus columnas. Exceptuando el Id autonumérico y clave principal, lo demás es del tipo String con 50 caracteres. Lo estoy editando con .Net Frameworks 4.5 visual basic .net 2012.

    Espero haber explicado el problema y las cosas que tengo para poder facilitarles una respuestas.

    Desde ya muchas gracias.

    jueves, 11 de abril de 2013 0:29

Todas las respuestas

  • Hola,

    Comentas que en tu datatable "Empresas" tienes todas las columnas exceptuando la clave principal?, de ser asi este es el problema, porque el diseñador de datasets necesita de una clave principal para poder generar las sentencias update y delete, y por consiguiente el metodo Update() te falla


    Si la respuesta es correcta, marcala como correcta.
    Tambien puedes votar como util si te fue de ayuda
    MCPD Windows Developer 4/MVA GOLD/DCE 5 ESTRELLAS PLATINO
    Pedro Marquez - Venezuela

    • Propuesto como respuesta Huarache lunes, 20 de enero de 2014 20:33
    jueves, 18 de abril de 2013 15:22
  • Muchas gracias, me resolvió el problema

    Programador

    • Propuesto como respuesta Julian3334 martes, 30 de abril de 2019 5:07
    lunes, 20 de enero de 2014 20:34
  • Sos un genio... Estuve perdido en ese error muchos dias... Que buen aporte.

    PD: Gracias!

    martes, 7 de octubre de 2014 17:54