Parametros Sql y @oldvalue Ado.net

Iniciado por Matisca, 24 Enero 2015, 03:19 AM

0 Miembros y 1 Visitante están viendo este tema.

Matisca

[MOD]:
Debes utilizar las etiquetas GeShi para insertar código, porfavor lee las normas del foro y las del subforo de programación general.
ÚLTIMA ADVERTENCIA.
Si futuros posts no respetan la norma citada arriba serán eliminados sin previo aviso, lo siento.
Siendo programador, no te costará entenderlo. Gracias por la comprensión.







Hola, tengo un problema, estoy probando un codigo que lo que hace es llenar un dataset, esto en el evento Load. Pero luego, en button1_click necesito comparar los valores viejos de la base de datos con los valores nuevos. Para saber si estos registros que cargue en form1_load cambiaron luego cuando hago button1_click, el problema esta en que no se como hacer que @oldnombre y @oldapallido tome cada uno de los diferentes valores de los diferentes registros del conjunto de datos. Gracias

Código (vbnet) [Seleccionar]
   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")
         


       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



           AddHandler adapter.RowUpdated, New OleDbRowUpdatedEventHandler(AddressOf OnRowUpdated)
   

           adapter.Update(dataset, "tabla2")

           connection.Close()
       
   End Sub



Sub OnRowUpdated(ByVal sender As Object, ByVal args As OleDbRowUpdatedEventArgs)
       If args.RecordsAffected = 0 Then
           args.Row.RowError = "Violacion concurrencia optimista"
           args.Status = UpdateStatus.SkipCurrentRow
       End If
   End Sub
   
End Class