Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/01/2015, 20:07
micase
 
Fecha de Ingreso: agosto-2010
Mensajes: 45
Antigüedad: 13 años, 8 meses
Puntos: 0
.NET parametros sql y @oldvalue

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

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