elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Comprobar cambios en los registros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Comprobar cambios en los registros  (Leído 1,834 veces)
Matisca

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Comprobar cambios en los registros
« en: 21 Enero 2015, 06:27 am »

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

Código
  1.  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  2.        Try
  3.            connetionString = "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=C:\concurrencia\base.accdb;"
  4.            connection = New OleDbConnection(connetionString)
  5.            connection.Open()
  6.            adapter = New OleDbDataAdapter("SELECT * from tabla2", connection)
  7.            adapter.Fill(DataSet, "tabla2")
  8.            tabla = New DataTable()
  9.            adapter.Fill(tabla)
  10.  
  11.        Catch ex As Exception
  12.            MsgBox(ex.ToString)
  13.        End Try
  14.    End Sub
  15.  
  16. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  17.        Try
  18.            Dim comando As OleDbCommand = connection.CreateCommand()
  19.            adapter.UpdateCommand = New OleDbCommand("UPDATE tabla2 set nombre=@nombre, apellido=@apellido WHERE nombre=@oldnombre AND apellido=@oldapellido", connection)
  20.            adapter.UpdateCommand.Parameters.Add("@nombre", OleDbType.VarChar, 255).Value = txtID.Text
  21.            adapter.UpdateCommand.Parameters.Add("@apellido", OleDbType.VarChar, 255).Value = txtCharData.Text
  22.            parameter = adapter.UpdateCommand.Parameters.Add("@oldnombre", OleDbType.VarChar, 255, "nombre")
  23.            parameter.SourceVersion = DataRowVersion.Original
  24.            parameter = adapter.UpdateCommand.Parameters.Add("@oldapellido", OleDbType.VarChar, 255, "apellido")
  25.            parameter.SourceVersion = DataRowVersion.Original
  26.  
  27.        adapter.UpdateCommand.ExecuteNonQuery()
  28.  
  29.            adapter.Update(dataset, "tabla2")
  30.            adapter.Fill(dataset, "tabla2")
  31.     connection.Close()
  32.        Catch ex As Exception
  33.            MsgBox(ex.ToString)
  34.        End Try
  35.    End Sub



[MOD]: Utiliza el botón de "Insertar código", gracias.


« Última modificación: 21 Enero 2015, 06:55 am por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.818



Ver Perfil
Re: Comprobar cambios en los registros
« Respuesta #1 en: 21 Enero 2015, 07:11 am »

capturo el error que dice "@oldnombre no tiene un valor predeterminado", no se cual puede llegar a ser el problema.

Prueba a añadir un valor predeterminado.

Un valor DBNull.Value en lugar de un null:
Código
  1. parameter = adapter.UpdateCommand.Parameters.Add("@oldnombre", OleDbType.VarChar, 255, "nombre").Value = DBNull.Value
  2. parameter = adapter.UpdateCommand.Parameters.Add("@oldapellido", OleDbType.Char, 255, "apellido").Value = DBNull.Value

Saludos


« Última modificación: 21 Enero 2015, 07:20 am por Eleкtro » En línea

Matisca

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: Comprobar cambios en los registros
« Respuesta #2 en: 21 Enero 2015, 10:27 am »

Hola, ya lo hice, pero ahora no se guardan los registros en la base de datos con la sentencia update. La idea es saber si los registros en la base de datos cambiaron.
@oldapellido y @oldnombre supongo que debe ser los datos que habian en un comienzo en la base de datos, en el momento en que llene el dataset. Yo quiero hacer una actualizacion masiva de datos, pero antes de hacerla necesito saber si estos registros cambiaron desde la ultima vez que los consulte. Gracias
« Última modificación: 21 Enero 2015, 10:39 am por Matisca » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cambios en las FPs
Foro Libre
KuraraGNU 8 4,174 Último mensaje 29 Noviembre 2010, 13:39 pm
por KuraraGNU
[Registros] existe algún registro para Outlook en los registros de windows?
Windows
moikano→@ 5 6,870 Último mensaje 14 Febrero 2011, 14:56 pm
por dantemc
[Powershell] Pequeña función para comprobar si un dominio tiene registros MX
Scripting
fe80Grau 0 2,287 Último mensaje 3 Septiembre 2014, 00:44 am
por fe80Grau
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines