Error en UpdateCommand al añadir un registro.

20/03/2006 - 17:23 por Jesús G. | Informe spam
En un formulario tengo DataGridView con vendedores. Además, tengo una
ToolStrip con un botón Añadir, y otro, Editar.

Cuando pulso el botón Editar, llamo a un formulario que es la ficha de
Vendedores. Utilizo el siguiente código:

Private Sub btEditar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btEditar.Click

My.Forms.frmFVendedores.MdiParent = My.Forms.frmPrincipal
My.Forms.frmFVendedores.WindowState = FormWindowState.Normal

'Editar registro
Dim dgvr As DataGridViewRow = Me.VendedoresDataGridView.CurrentRow()
My.Forms.frmFVendedores.Tag = dgvr.Cells("IdVendedor").Value.ToString()
My.Forms.frmFVendedores.Show()

End Sub

Para crear este formulario, creé un Dataset denominado VendedoresDS en el
cual sólo incluyo la tabla Vendedores con todos sus campos.

En el formulario de vendedores tengo el siguiente código:

Private Sub frmFVendedores_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
If Val(Me.Tag) > 0 Then
'Edición
Me.VendedoresTableAdapter.FillByIdVendedor(Me.VendedoresDS.Vendedores,
Me.Tag)
Else
'Añadir registro
Me.VendedoresTableAdapter.Fill(Me.VendedoresDS.Vendedores)
Me.VendedoresBindingSource.AddNew()
End If
End Sub

Private Sub btAceptar_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btAceptar.Click
'Guardar los cambios
If MsgBox("¿Desea guardar los cambios?", MsgBoxStyle.Information +
MsgBoxStyle.YesNo, "Guardado") = MsgBoxResult.Yes Then
Me.Validate()
Me.VendedoresBindingSource.EndEdit()
Me.VendedoresTableAdapter.Update(Me.VendedoresDS.Vendedores)
Else
MessageBox.Show(Me, "Errores")
End If
Me.Close()
End Sub

El problema que tengo es que cuando ejecuto la aplicación y entro en la
ficha de Vendedores a editar y modifico un dato en un campo y luego pulso el
botón Aceptar, me sale el siguiente error:

"No se encontron InvalidOperationException. Update requiere que
UpdateCommand sea válido cuando se pasa una colección Datarow con filas
modificadas."

No sé que hacer. ¿Alguién me echa una manita?

Saludos

Jesús G.
 

Leer las respuestas

#1 Lucas
20/03/2006 - 18:06 | Informe spam
No dispongo de mucho tiempo para revisar tu código a fondo, pero por el error
que te da, me pregunto si a la hora de haber creado tu DataAdapter para poder
llenar la tabla en el DataSet, también habrás creado un CommandBuilder que es
el que te permite hacerle modificaciones a las tablas.

Para una conexión a SQL Server sería algo como

Dim commandBuilder As SqlCommandBuilder
adapter = New SqlDataAdapter("Select * from Tabla", Conexion)
commandBuilder = New SqlCommandBuilder(adapter)
adapter.FillSchema(dataSet, SchemaType.Source)
adapter.Fill(dataSet, "nombreTabla")

Espero te haya ayudado en algo. Me avisas si ese era el error.

Nos vemos.

Preguntas similares