Foros del Web » Programando para Internet » ASPX (.net) »

Hacer que un valor no se repita en la DB

Estas en el tema de Hacer que un valor no se repita en la DB en el foro de ASPX (.net) en Foros del Web. Hola! Tengo esta consulta que me guarda dos datos en una taba (columna1 el ID y columna2 guarda la fecha) Código PHP: Protected  Sub btnGuardar_Click ( ...
  #1 (permalink)  
Antiguo 10/05/2010, 07:37
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 132
Antigüedad: 17 años, 7 meses
Puntos: 0
Hacer que un valor no se repita en la DB

Hola!
Tengo esta consulta que me guarda dos datos en una taba (columna1 el ID y columna2 guarda la fecha)

Código PHP:
Protected Sub btnGuardar_Click(ByVal sender As ObjectByVal e As System.EventArgs)
               
        If (
Not (grid1.SelectedRecordsIs NothingThen
            
For Each oRecord As Hashtable In grid1.SelectedRecords
                Dim i 
As Integer 0
                Dim sDate 
As String ""
                
                
For 0 To Calendar1.SelectedDates.Count 1
                    sDate 
Calendar1.SelectedDates(i).Date
                    
                    Dim myComm 
As SqlCommand = New SqlCommand("INSERT INTO Join_CobrosRemisera " _
                    
"(ID_Remisera, Date) VALUES " _
                    
"(@sID, @sDate)"myConn)
                    
                    
myConn.Open()
                    
                    
myComm.Parameters.Add("@sID"SqlDbType.Int).Value oRecord("ID")
                    
myComm.Parameters.Add("@sDate"SqlDbType.SmallDateTime).Value sDate
                    myComm
.ExecuteNonQuery()
                    
                    
myConn.Close()
                    
                
Next i
            Next
        End 
If
    
End Sub 
Ustedes saben como puedo hacer para que, si los datos ya existen, no los vuelva a insertar (sino me hace registros repetidos como en esta imagen)


Podran apreciar que mucho de esto no entiendo, busque en Google y me confundo mas! Solo estoy tratando de simplificarle la vida a mi viejo haciendole un programita

Gracias!!!
  #2 (permalink)  
Antiguo 10/05/2010, 08:10
Avatar de Forgotten_Warrior  
Fecha de Ingreso: mayo-2010
Mensajes: 4
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Hacer que un valor no se repita en la DB

Buenas:

Porque no te creas un metodo que reciva por parametro el "ID" y la "Fecha" que deseas insertar en la base de datos. Este metodo solo debera realizar una select en base a estos dos datos. De tal forma que la select obtendra resultados si existe algun registro en la tabla que contenga el mismo id y la misma fecha.

Posteriormente solamente tendras que hacer que este metodo devuelva un valor booleano, dependiendo de si se ha obtenido algun valor mediante la select. Por ejemplo si el registro ya existe (es decir si se ha obtenido algun valor mediante la consulta) que devuelva el valor true, en caso contrario false.

Ahora solamente te quedaria invocar a este metodo antes de realizar la insercion. Despues compruebas cual es el valor que te devuelve y en base a dicho valor mediante un "if" puedes controlar que se realice o no la insercion en la base de datos.
  #3 (permalink)  
Antiguo 10/05/2010, 10:20
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Hacer que un valor no se repita en la DB

Si en la tabla Join_CobrosRemisera agregas como primary key el ID_Remisera y Date te quedaria.

Saludos.
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.
  #4 (permalink)  
Antiguo 10/05/2010, 13:24
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 132
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Hacer que un valor no se repita en la DB

ahora me voy a poner a probar y les cuento!
  #5 (permalink)  
Antiguo 10/05/2010, 13:31
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 132
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Hacer que un valor no se repita en la DB

mdavila: no sabia que era clave principal o primary key!
Estuve leyendo por Google y dice que es un campo con datos unicos (que no se repiten)
El tema es que en ID_Remisera pueden haber datos duplicados.
Lo que no deben repetirse es los valores por celdas (horizontalmente)

pero igual voy a probar lo que me puso arriba Forgotten GRACIAS!!!

Última edición por german_martin; 10/05/2010 a las 13:39
  #6 (permalink)  
Antiguo 10/05/2010, 13:48
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Hacer que un valor no se repita en la DB

Pero german, vos comentas que no se pueden repetir mismo ID con misma Fecha, para eso si te sirve, podes tener mismos ID's con distintas Fechas no!!!

Saludos.
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.
  #7 (permalink)  
Antiguo 10/05/2010, 14:17
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 132
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Hacer que un valor no se repita en la DB

Ah!! Si! Ahora te entiendo mdavila gracias!
Y en lo que vale rendimiento es conveniente dejar asi dos primary key?
  #8 (permalink)  
Antiguo 10/05/2010, 14:54
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 132
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Hacer que un valor no se repita en la DB

Gracias Marcelo!
He hecho lo que vos me dijiste porque me ahorro una consulta mas a la base de datos.
Tuve que usar un Try, Catch, End Try para que el error no aparesca por no admitir valores duplicados


Saludos!
  #9 (permalink)  
Antiguo 11/05/2010, 05:29
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Hacer que un valor no se repita en la DB

Cita:
Iniciado por german_martin Ver Mensaje
Ah!! Si! Ahora te entiendo mdavila gracias!
Y en lo que vale rendimiento es conveniente dejar asi dos primary key?
Es muy normal tener dos o mas primary key ok.
No afecta a tu rendimiento esto.

En tal caso siempre esta la posibilidad de generar indices en tu tabla.

Saludos.
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.
  #10 (permalink)  
Antiguo 13/05/2010, 16:09
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 132
Antigüedad: 17 años, 7 meses
Puntos: 0
Respuesta: Hacer que un valor no se repita en la DB

Listo mdavila!
No sabia, bueno me has enseñado algo nuevo
Funciono 100% ok!

Mil gracias!
Aguante El cuarteto de Nos!

Etiquetas: aspx
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 10:00.