none
MENSAJE DE DATO DUPLICADO RRS feed

  • Pregunta

  • POR RAZON FUERA DE MI ALCANCE SE INGRESARON DATOS DUPLICADOS EN LA BD TRATO DE ENVIAR UNA ALERTA CUANDO SE DETECTA QUE EL DATO ES DUPLICADO , con esta consulta trato de ver los duplicados

    Private Function BuscarDuplicado() As DataTable
            Try
                Dim t As New DataTable
                Dim sql As String = "SELECT * FROM  Tabla1  columna1 WHERE Columna1 = '" & Me.Txtduplicado.Text & "'"
                Dim da As New SqlDataAdapter(sql, conex)
                conex.Open()
                da.Fill(t)
                Return t
                '  conex.Close()
            Catch ex As Exception
                MsgBox(ex.Message)
            Finally
                conex.Close()
            End Try
    
        End Function

    ACA DONDE MANDO LA ALERTA PERO ALGO ANDO HACIENDO MAL POR QUE ME TIRA ALERTA EN TODOS LOS DATOS SUPONGO QUE MI COSULTA ESTA MAL

    Dim t1 As DataTable
            t1 = Me.BuscarParteDescripcion()
            If t1.Rows.Count = 0 Then
                ' MessageBox.Show("DatoRepetido", "Verificacion de Dato", MessageBoxButtons.OK, MessageBoxIcon.Stop)
            Else
                ' MsgBox("Dato Repetido Verificar")
                MessageBox.Show("Dato Repetido", "Verificacion de Dato", MessageBoxButtons.OK, MessageBoxIcon.Stop)
            End If
    
        End Sub

    jueves, 18 de julio de 2019 14:41

Todas las respuestas

  • Me imagino que será un error al copiar y pegar en el foro, pero la función se llama "BuscarDuplicado" y sin embargo estás llamando a "BuscarParteDescripcion".

    Aparte de eso, pones "If t1.Rows.Count=0". Pero si el dato ya existe, te devolverá un valor mayor que cero. La comparación debería de ser "If t1.Rows.Count<>0".

    La consulta sql es un poco rara. Pone "SELECT * FROM  Tabla1  columna1 WHERE ...". Esto hace que columna1 sea un alias de Tabla1, que probablemente no es lo que querías. Aunque no dé error, recomiendo reescribirla para que no cause confusión.

    El conex.Open y conex.Close sobran. El método Fill ya abre la conexión si está cerrada, y la cierra antes de volver.

    • Propuesto como respuesta Pablo Rubio viernes, 19 de julio de 2019 18:06
    jueves, 18 de julio de 2019 21:02
  • Dim t1 As DataTable
            t1 = Me.BuscarDuplicado()
            If t1.Rows.Count = 0 Then
                ' MessageBox.Show("DatoRepetido", "Verificacion de Dato", MessageBoxButtons.OK, MessageBoxIcon.Stop)
            Else
                ' MsgBox("Dato Repetido Verificar")
                MessageBox.Show("Dato Repetido", "Verificacion de Dato", MessageBoxButtons.OK, MessageBoxIcon.Stop)
            End If
    
        End Sub

    Fue un error al subir , tomare en cuenta lo de las conexiones , y en mi consultada

    SQL= "SELECT * FROM  Tabla1  columna1 WHERE  esta de mas la de columna1  pero quisiera saber si estoy bien aparte de estos errors

    Un saludo

    jueves, 18 de julio de 2019 21:38