Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/07/2014, 14:19
uagrm
 
Fecha de Ingreso: agosto-2010
Mensajes: 126
Antigüedad: 13 años, 8 meses
Puntos: 9
Validar datos repetidos

hola amigos quiero que me corrijan y por favor me digan cual es mi error.
En mi programa estoy haciendo una validación que no permita ingresar un DNI ya registrado en mi base de datos.

Procedimiento almacenado SQL es el siguiente

Código PHP:
create procedure InsertarPersona
@Nombres varchar(50),
@
Apellidos varchar(50),
@
Dni int,
@
Direccion varchar(100),
@
Telefono int,
@
Email varchar(100),
@
Estado varchar(30)
as 
begin 
        
if (select Count(*) from tztPersona where Dni = @Dni) = 0
              insert into tztPersona values 
(@Nombres, @Apellidos, @Dni, @Direccion, @Telefono, @Email, @Estado)
       else 
                
select 'Error, DNI Repetido..'
end 
go 
Este es mi método para registrar una Persona

Código PHP:
 Public Function InsertarPersona(ByVal a As nPersona) As Boolean
        
Try
            
Conectado()
            
cmd = New SqlCommand("InsertarPersona")
            
cmd.CommandType CommandType.StoredProcedure
            cmd
.Connection cnn

            cmd
.Parameters.AddWithValue("@Nombres"a.getNombres)
            
cmd.Parameters.AddWithValue("@Apellidos"a.getApellidos)
            
cmd.Parameters.AddWithValue("@Dni"a.getDni)
            
cmd.Parameters.AddWithValue("@Direccion"a.getDireccion)
            
cmd.Parameters.AddWithValue("@Telefono"a.getTelefono)
            
cmd.Parameters.AddWithValue("@Email"a.getEmail)
            
cmd.Parameters.AddWithValue("@Estado"a.getEstado)

            If 
cmd.ExecuteNonQuery Then
                
Return True
            
Else
                Return 
False
            End 
If
        Catch 
ex As Exception
            MsgBox
(ex.Message)
            Return 
False
        Finally
            Desconectado
()
        
End Try
    
End Function 

Código PHP:
If Me.ValidateChildren True And txtNombres.Text <> "" And txtApellidos.Text <> "" And txtCi.Text <> "" And txtDireccion.Text <> "" And txtTelefono.Text <> "" And txtEmail.Text <> "" Then
            
Try
                
Dim na As New nPersona
                Dim da 
As New dPersona

                na
.getNombres txtNombres.Text
                na
.getApellidos txtApellidos.Text
                na
.getDni txtDni.Text
                na
.getDireccion txtDireccion.Text
                na
.getTelefono txtTelefono.Text
                na
.getEmail txtEmail.Text
                na
.getEstado cmbEstado.SelectedItem

                
If da.InsertarPersona(naThen
                    MessageBox
.Show("Persona Registrada Correctamente""Guardando Datos.."MessageBoxButtons.OKMessageBoxIcon.Information)
                Else
                    
MessageBox.Show("Ya Existe Una Persona Con el Mismo DNI.""Guardando Datos.."MessageBoxButtons.OKMessageBoxIcon.Error)
                
End If
            Catch 
ex As Exception
                MsgBox
(ex.Message)
            
End Try
        Else
            
MessageBox.Show("Faltan Datos Para Ingresar""Guardando Datos.."MessageBoxButtons.OKMessageBoxIcon.Error)
        
End If 
Espero que me digan porque razón cuando introduzco un DNI repetido no me muestra el mensaje que ese DNI ya se encuentra registrado, pero eso sí, si introduzco un DNI repetido no inserta a la base de datos, eso significa que mi procedimiento almacenado está funcionando bien.

Última edición por uagrm; 14/07/2014 a las 14:28