CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 Actualizacion vb.net

(1/1)

cobyz21:
Saludos a todoa estoy progrmando un sistema en vb.net y a la hora de actualizar me manda el siguiente error

Infracción de concurrencia: UpdateCommand afectó a 0 de los 1 registros esperados.
Codigo de error :
en System.Data.Common.DbDataAdapter.UpdatedRowStatusE rrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandIn...fo[] batchCommands, Int32 commandCount)
en System.Data.Common.DbDataAdapter.UpdatedRowStatus( RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)
en System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)
en System.Data.Common.DbDataAdapter.UpdateFromDataTab le(DataTable dataTable, DataTableMapping tableMapping)
en System.Data.Common.DbDataAdapter.Update(DataTable dataTable)
en SystemSTP.frm_form.btn_guarda_Click(Object sender, EventArgs e) en E:...Formsfrm_planta.vb:línea 549


el codigo es el siguiente

     
--- Código: vb.net --- Private Sub frm_planta_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load             Conexion.Open()              ' La cadena de selección              Dim sSel As String = "SELECT * from plan_prub ORDER BY ficha ASC"                           Try                  ' Crear un nuevo objeto del tipo DataAdapter                  NpDataAdapter = New Npgsql.NpgsqlDataAdapter(sSel, Conexion) ' SqlDataAdapter(sSel, sCnn)                  ' Crear los comandos de insertar, actualizar y eliminar                  Dim cb As New Npgsql.NpgsqlCommandBuilder(NpDataAdapter) ' SqlCommandBuilder(da)                  cb.QuotePrefix = "["                  cb.QuoteSuffix = "]"                  ' Asignar los comandos al DataAdapter                  ' (se supone que lo hace automáticamente, pero...) debe tener la tabla una llave primaria o mandara error                  NpDataAdapter.UpdateCommand = cb.GetUpdateCommand()                  NpDataAdapter.InsertCommand = cb.GetInsertCommand()                  NpDataAdapter.DeleteCommand = cb.GetDeleteCommand()                  '                  ' Esta base de datos usa el ID con valores automáticos                  NpDataAdapter.MissingSchemaAction = MissingSchemaAction.AddWithKey                  '                  DataTab = New DataTable()                  ' Llenar la tabla con los datos indicados                  NpDataAdapter.Fill(DataTab)                  'mostrar el primer registro                  If DataTab.Rows.Count > 0 Then                      btn_primero_Click(Nothing, Nothing)                      txt_busqueda.Select()                  Else                      fila = -1                      btn_modifica.Enabled = False                  End If              Catch ex As Exception                  MessageBox.Show("ERROR al conectar o recuperar los datos:" & vbLf & ex.Message, "Conectar con la base", MessageBoxButtons.OK, MessageBoxIcon.[Error])              End Try      End Sub             Private Sub asignarDatos(ByVal dr As DataRow)              ' Usar los datos que hay en los textbox              If Rdb_m.Checked = True Then                  dr("s") = DBNull.Value '"M"              Else                  dr("s") = DBNull.Value '"F"              End If               dr("ficha") = txt_ficha.Text              dr("nombre") = txt_nombre.Text      End Sub       Private Sub btn_guarda_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_guarda.Click             Dim DataRo As DataRow = DataTab.Rows(fila)              ' Asignar los datos de los textbox a la fila              asignarDatos(DataRo)                     Try                  NpDataAdapter.Update(DataTab)                  DataTab.AcceptChanges()              Catch ex As DBConcurrencyException                  MsgBox("Error de concurrencia: " & vbLf & ex.Message & vbLf & vbLf & "Codigo de error :" & vbLf & ex.StackTrace, MsgBoxStyle.Critical, "Error")                   End Sub 

Navegación

[0] Índice de Mensajes

Ir a la versión completa