Visual Basic.NET - Comprobar cambios en los registros

 
Vista:
sin imagen de perfil

Comprobar cambios en los registros

Publicado por Matias (6 intervenciones) el 21/01/2015 04:59:48
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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de giancarlo
Val: 377
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Comprobar cambios en los registros

Publicado por giancarlo (488 intervenciones) el 21/01/2015 20:04:22
Comprueba el tipo de datos, tambien puedes ir ejecutando el codigo paso a paso y fijate como y cual es el valor que le envias al parametro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Comprobar cambios en los registros

Publicado por Matias (6 intervenciones) el 22/01/2015 04:46:32
Claro, pero el problema es que no le estoy pasando ningun valor a los @old.. (@oldnombre y @oldapellido), la idea del codigo es actualizar solo aquellos registros que no cambiaron, es decir, se tiene que cumplir que nombre(el dato del campo nombre en este momento) sea igual a @oldnombre (@oldnombre tendria que ser el valor inicial de ese campo cuando llene el dataset), el update actualizaria muchos registros, y por cada uno tiene que hacer esto, es decir comparar nombre con @oldnombre. Se que hay una forma de hacerlo pero no se cual es. Si podes poner el codigo completo mejor. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar