Foros del Web » Programación para mayores de 30 ;) » .NET »

Evitar la duplicidad de datos en la BD

Estas en el tema de Evitar la duplicidad de datos en la BD en el foro de .NET en Foros del Web. Hola a todos, Estoy trabajando en .net y tengo problema con la duplicidad de los datos... es decir necesito que si un registro ya esta ...
  #1 (permalink)  
Antiguo 29/01/2013, 12:58
 
Fecha de Ingreso: noviembre-2012
Ubicación: caracas
Mensajes: 53
Antigüedad: 11 años, 3 meses
Puntos: 0
Evitar la duplicidad de datos en la BD

Hola a todos,

Estoy trabajando en .net y tengo problema con la duplicidad de los datos... es decir necesito que si un registro ya esta guardado no lo vuelva a almacenar pero que tome el id que use este para guardarlo en la otra tabla algo como esto:

..............Clientes............................ ..............Producto...............
Id_C...............Nombre........Id_P............. .........Id_P.........Nombre
1....................Carlos.............1......... ..................1............Pera
2....................Pedro..............1......... ...................2..........Manzana
3....................Juan................2
4....................Ramon.............1
5....................Luis..................2
6....................Carlos..............2

Como se ve en el ejemplo anterior el Id_p se toma para almacenarlo en el nombre de los clientes que lo compraron...

Imagino que en codigo puede ser algo como esto pero no me corre bien:

Código vb:
Ver original
  1. 'INSERT PARA LA TABLA ORDENANTES
  2.                Dim queryOrdenantes As String = "INSERT INTO ordenantes (nombre_ordenante) " & _
  3.                                         "VALUES (@nombreord)" & _
  4.                                         ";SELECT LAST_INSERT_ID();"
  5.                 Dim id_ordenante As Integer = 0
  6.                 If "@nombreord" = 0 Then
  7.                     Using cmd As New MySqlCommand(queryOrdenantes, cn)
  8.                         cmd.Transaction = myTrans
  9.                         cmd.Parameters.AddWithValue("@nombreord", txtOrdenante.Text)
  10.                         id_ordenante = Convert.ToInt32(cmd.ExecuteScalar())
  11.                     End Using
  12.                 Else
  13.                     Dim queryOrdenantesrep As String = " INSERT INTO Detalle id_ordenante values @id_repetido"
  14.                     Using cmd As New MySqlCommand(queryOrdenantes, cn)
  15.                         cmd.Transaction = myTrans
  16.                         cmd.Parameters.AddWithValue("@id_repetido", id_ordenante)
  17.                     End Using
  18.                 End If
  #2 (permalink)  
Antiguo 31/01/2013, 10:44
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 5 meses
Puntos: 58
Respuesta: Evitar la duplicidad de datos en la BD

Hola que tal, bueno esto me parece mas para un SP.

Lo que tendrias que hacer es validar si existe el registro que vas a insertar, de no existir lo insertas, si existe simplemente que no lo inserte.

Código SQL:
Ver original
  1. IF NOT EXISTS( SELECT Campo FROM TablaX (NOLOCK) WHERE Campo = 'Algo' )
  2. BEGIN
  3.     INSERT INTO
  4.           .
  5.           .
  6.           .
  7.          bla bla bla
  8. END
  9.  
  10. INSERT INTO Tu_Otra_Tabla
  11.           .
  12.           .
  13.           .
  14.           bla bla bla

Asi validas si existe y no se insertaria, pero si se insertaria en la otra tabla.


Etiquetas: bd, duplicidad, net, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:42.