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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  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 2,024 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.878



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,448 Ú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 7,440 Ú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,464 Último mensaje 3 Septiembre 2014, 00:44 am
por fe80Grau
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines