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

Ayuda!!! Clave Primaria Duplicada

Estas en el tema de Ayuda!!! Clave Primaria Duplicada en el foro de ASPX (.net) en Foros del Web. Hola amigos del foro, espero me puedan ayudar, les cuento.... resulta que lleno un formulario web el cual posee 4 campos, hay 3 campos que ...
  #1 (permalink)  
Antiguo 07/09/2005, 12:03
 
Fecha de Ingreso: enero-2005
Mensajes: 103
Antigüedad: 19 años, 3 meses
Puntos: 0
Ayuda!!! Clave Primaria Duplicada

Hola amigos del foro, espero me puedan ayudar, les cuento.... resulta que lleno un formulario web el cual posee 4 campos, hay 3 campos que da lo mismo lo que escriban los usuarios, pero el 4to campo esta definido como clave primaria en la Base de datos (sql-server) por lo tanto cada vez que se se envia el formulario y el cuarto campo esta repetido se cae la aplicacion......alguien me puede ayudar para validar el formulario... para que no se caiga y me arroje un mensaje que diga... por ejemplo texto duplicado volver a ingresarlo...

Espero que me puedan ayudar y no ser muy enredado
Saludos
Roberto.
  #2 (permalink)  
Antiguo 07/09/2005, 15:00
 
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey mx
Mensajes: 57
Antigüedad: 19 años, 7 meses
Puntos: 0
hay varias formas de hacer eso...

lo mas logico esq antes q insertes los valores, ejecutes un stored procedure o comando de SQL q te valide si lo q estas tratando de insertar esta duplicado... y en caso de ser asi, q mande un mensaje al usuario y q no inserte...

otra esq utilices try.. catch para validar el error de SQL, y asi tu aplicacion no se caera:

try
' tu codigo dr insercion de datos aki...
..............
Catch ex As System.Data.SqlClient.SqlException
labelerrores.text = "ha ocurrido un error en la base de datos, por favor verifique la información"
End Try

obiamente q ese error es muy generico, si usas un stored procedure, puedes hacer q este valide la insecion de datos duplicados y q levante un error de SQL personalizado con la instruccion de SQL raiserror...
  #3 (permalink)  
Antiguo 07/09/2005, 15:42
 
Fecha de Ingreso: enero-2005
Mensajes: 103
Antigüedad: 19 años, 3 meses
Puntos: 0
ok.. gracias por tu respuesta hv16... pero no me resulta , te mando el codigo de la funcion para que le eches un vistazo y me digas como deberia quedar...

Function IngresarCartas(ByVal idEstampilla As String, ByVal destinatario As String, ByVal localidad As String, ByVal fechaEnvio As Date, ByVal Direccion As String ) As Integer
Dim connectionString As String = "server='(local)'; user id='cartaaspnet'; password='12345'; database='Cartas'"
Dim dbConnection As System.Data.IDbConnection = New System.Data.SqlClient.SqlConnection(connectionStri ng)

Dim queryString As String = "INSERT INTO [IngresoCartas] ([IdEstampilla], [Destinatario], [Localidad], [FechaE"& _
"nvio], [Direccion]) VALUES (@IdEstampilla, @Destinatario, @Localidad, @FechaEnvio, @Direccion)"
Dim dbCommand As System.Data.IDbCommand = New System.Data.SqlClient.SqlCommand
dbCommand.CommandText = queryString
dbCommand.Connection = dbConnection

Dim dbParam_idEstampilla As System.Data.IDataParameter = New System.Data.SqlClient.SqlParameter
dbParam_idEstampilla.ParameterName = "@IdEstampilla"
dbParam_idEstampilla.Value = idEstampilla
dbParam_idEstampilla.DbType = System.Data.DbType.StringFixedLength
dbCommand.Parameters.Add(dbParam_idEstampilla)
Dim dbParam_destinatario As System.Data.IDataParameter = New System.Data.SqlClient.SqlParameter
dbParam_destinatario.ParameterName = "@Destinatario"
dbParam_destinatario.Value = destinatario
dbParam_destinatario.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_destinatario)
Dim dbParam_localidad As System.Data.IDataParameter = New System.Data.SqlClient.SqlParameter
dbParam_localidad.ParameterName = "@Localidad"
dbParam_localidad.Value = localidad
dbParam_localidad.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_localidad)
Dim dbParam_fechaEnvio As System.Data.IDataParameter = New System.Data.SqlClient.SqlParameter
dbParam_fechaEnvio.ParameterName = "@FechaEnvio"
dbParam_fechaEnvio.Value = fechaEnvio
dbParam_fechaEnvio.DbType = System.Data.DbType.DateTime
dbCommand.Parameters.Add(dbParam_fechaEnvio)
Dim dbParam_Direccion As System.Data.IDataParameter = New System.Data.SqlClient.SqlParameter
dbParam_Direccion.ParameterName = "@Direccion"
dbParam_Direccion.Value = Direccion
dbParam_Direccion.DbType = System.Data.DbType.String
dbCommand.Parameters.Add(dbParam_Direccion)

Dim rowsAffected As Integer = 0
dbConnection.Open
Try
rowsAffected = dbCommand.ExecuteNonQuery
Finally
dbConnection.Close
End Try

Return rowsAffected
End Function

Saludos y muchas gracias por tu ayuda
Roberto
  #4 (permalink)  
Antiguo 08/09/2005, 00:55
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 5 meses
Puntos: 8
Pruebalo así:
Código:
 Try
rowsAffected = dbCommand.ExecuteNonQuery
catch ex as exception
response.Write("<script>window.alert('Se ha producido un error');</script>")
Finally
dbConnection.Close
End Try
Si te salta otro error distinto es que el error es otro distinto a la inserción
  #5 (permalink)  
Antiguo 08/09/2005, 09:43
 
Fecha de Ingreso: enero-2005
Mensajes: 103
Antigüedad: 19 años, 3 meses
Puntos: 0
Gracias a los 2..!!!!! ahora si me funciona

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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 02:46.