Visual Basic.NET - .NET Parametros en Sql y @oldvalue

 
Vista:
sin imagen de perfil

.NET Parametros en Sql y @oldvalue

Publicado por Matias (6 intervenciones) el 24/01/2015 03:09:41
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
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 Wilfredo Patricio Castillo
Val: 1.239
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

.NET Parametros en Sql y @oldvalue

Publicado por Wilfredo Patricio Castillo (720 intervenciones) el 25/01/2015 06:43:37
Hola

Si tuvieras una capa de entidades, se te haría mas facil el asunto, ya que traerías una entidad con los datos que recuperas, en el cliente vuelves a llenar tus datos y envias de regreso las 2 entidades y al final comparas los datos de ambos los nuevo y los antiguos..

Saludos cordiales
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

.NET Parametros en Sql y @oldvalue

Publicado por Matias (6 intervenciones) el 25/01/2015 23:29:58
y como se haria de esa manera?
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