Hola a todos, esto comenzando con .Net después de muchos años con Vb y Ado.
Me encuentro en un pequeño Mar de confusiones pues en esta rutina que os
expongo simplemente quiero modificar los valores de un registro con un
dataadater.
No se porque falla pero el error que da es el siguiente:
?dtAdap.UpdateCommand
{System.Data.OleDb.OleDbCommand}
CommandText: "UPDATE EMPLEADO SET CODIGO EMPLERADO = ? , APELLIDOS y
nombre = ? , CENTRO = ? WHERE ( (CODIGO EMPLERADO = ?) AND ((? = 1 AND
APELLIDOS y nombre IS NULL) OR (APELLIDOS y nombre = ?)) AND ((? = 1 AND
CENTRO IS NULL) OR (CENTRO = ?)) )"
CommandTimeout: 30
CommandType: Text
Connection: {System.Data.OleDb.OleDbConnection}
Container: Nothing
DesignTimeVisible: True
Parameters: {System.Data.OleDb.OleDbParameterCollection}
Site: Nothing
Transaction: Nothing
UpdatedRowSource: None
?ex.Message
"Error de sintaxis en la instrucción UPDATE."
El código que uso es este:
Private Sub Actualiza()
Dim dtSet As New System.Data.DataSet, dtAdap As New
OleDb.OleDbDataAdapter
Dim s$
s = "SELECT * FROM EMPLEADOS WHERE [CODIGO_EMPLEADO & ] ='" &
Me.TxtCodigo.Tag.ToString & "'"
dtAdap.SelectCommand = New OleDb.OleDbCommand(s, cnApp)
dtAdap.Fill(dtSet, "EMPLEADOS")
dtSet.Tables(0).Rows(0).BeginEdit()
dtSet.Tables(0).Rows(0)(tt.emp.CODIGO_EMPLEADO) = Me.TxtCodigo.Text
dtSet.Tables(0).Rows(0)(tt.emp.APELLIDOS_Y_NOMBRE) = Me.TxtDatos.Text
dtSet.Tables(0).Rows(0)(tt.emp.CENTRO) = Me.ComboCentros.Text
dtSet.Tables(0).Rows(0).EndEdit()
dtAdap.UpdateCommand = New
OleDb.OleDbCommandBuilder(dtAdap).GetUpdateCommand
Try
dtAdap.Update(dtSet, "EMPLEADOS") 'Aqui me da error
dtSet.AcceptChanges()
Catch ex As Exception
Debug.WriteLine(ex.Message)
End Try
dtAdap.Dispose()
End Sub
Que estoy haciendo mal?
Gracias por vuestra atencioón.
Miuca :-)
Leer las respuestas