Modificar un registro con Ado.Net

Quiero actualizar un registro en una base de datos, no obtengo ningún mensaje de error pero no se actualiza el registro:
Dim Conexion As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; user id=admin;password=; Data Source='C:\Mi Base.MDB'")
Conexion.Open()
Dim Adaptador As New OleDb.OleDbDataAdapter("Select * from [Clientes] Where [Cli:Cod]='4300003'", Conexion)
Dim Tabla As New DataTable
Adaptador.Fill(Tabla)
Tabla.Rows(0).Item("Cli:Razon Social") = "otro dato Modificado"
Tabla.AcceptChanges()
Adaptador.Update(Tabla)
Conexión. Close()
No me interesa actualizar con instrucciones Sql ya que son muchos campos y no se cuales modificare.

1 respuesta

Respuesta
Como lo veo, cuando le dices "Cli:Cod" esa notación no la conozco de ninguna version de T-SQL de bases de datos.
Seria algo como Cli. Cod, pensando en que el campo se llama "Cod" pero ademas, faltaría que se lo indicaras en el select: "... FROM Clientes As Cli"
Es un campo de access que esta creado en la tabla como "Cli:Cod" y "Cli:Razón Social"...
De todas formas gracias, ya llegue a la conclusión del fallo, tenia que utilizar "OleDbCommandBuilder" para que recogiese los cambios y QuotePrefix u QuoteSuffix para indicar que los campos tenían caracteres especiales, queda una cosa como esta:
Dim Conexion As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; user id=admin;password=; Data Source='C:\Mi Base.MDB'")
Conexion.Open()
Dim Adaptador As New OleDb.OleDbDataAdapter("Select * from [Clientes] Where [Cli:Cod]='4300003'", Conexion)
Dim Comando As New OleDb.OleDbCommandBuilder(Adaptador)
Comando.QuotePrefix = "["
Comando.QuoteSuffix = "]"
Dim Tabla As New DataTable
Adaptador.Fill(Tabla)
Tabla.Rows(0).Item("Cli:Razon Social") = "otro dato Modificado"
Comando.GetUpdateCommand()
Adaptador.Update(Tabla)
Tabla.AcceptChanges()
Conexión.Close()
Si el código es mejorable... estoy empezando con ado.net y vb 2008
Gracias!
Esa es la forma de hacerlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas