Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/01/2015, 21:29
micase
 
Fecha de Ingreso: agosto-2010
Mensajes: 45
Antigüedad: 13 años, 8 meses
Puntos: 0
Comprobar cambios en la base de datos

Hola, necesito actualizar los datos de una cierta tabla de una base de datos, pero quiero actualizarlos solamente si no hubo cambios en los mismos. Trabajo con access, Tengo este codigo pero capturo el error que dice "@oldnombre no tiene un valor predeterminado", no se cual puede llegar a ser el problema. Gracias



Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
connetionString = "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=C:\concurrencia\base.accdb;"
connection = New OleDbConnection(connetionString)
connection.Open()
adapter = New OleDbDataAdapter("SELECT * from tabla2", connection)
adapter.Fill(DataSet, "tabla2")
tabla = New DataTable()
adapter.Fill(tabla)

Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub




Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Dim comando As OleDbCommand = connection.CreateCommand()
adapter.UpdateCommand = New OleDbCommand("UPDATE tabla2 set nombre=@nombre, apellido=@apellido WHERE nombre=@oldnombre AND apellido=@oldapellido", connection)
adapter.UpdateCommand.Parameters.Add("@nombre", OleDbType.VarChar, 255).Value = txtID.Text
adapter.UpdateCommand.Parameters.Add("@apellido", OleDbType.VarChar, 255).Value = txtCharData.Text
parameter = adapter.UpdateCommand.Parameters.Add("@oldnombre", OleDbType.VarChar, 255, "nombre")
parameter.SourceVersion = DataRowVersion.Original
parameter = adapter.UpdateCommand.Parameters.Add("@oldapellido ", OleDbType.VarChar, 255, "apellido")
parameter.SourceVersion = DataRowVersion.Original

adapter.UpdateCommand.ExecuteNonQuery()

adapter.Update(dataset, "tabla2")
adapter.Fill(dataset, "tabla2")
connection.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub