Mysql
 sql >> Base de données >  >> RDS >> Mysql

empêcher les entrées en double dans la base de données

Désolé de dire que ce n'est pas la bonne approche.

Les bases de données ont un système intégré pour empêcher la duplication des données. Cela passe par des clés primaires ou des contraintes de clé unique. Dans votre cas, vous avez déjà créé une clé primaire. Vous n'avez donc absolument pas besoin de le faire SELECT COUNT(*) requête.

Au lieu de cela, insérez simplement directement dans la table et attrapez l'erreur d'intégrité lorsque le pcode existe déjà.

Try
    cmd = New MySqlCommand("Insert into personnel values('" & pcode.Text & "','" & lname.Text & "','" & fname.Text & "','" & office.Text & "','" & designation.Text & "')")

    i = cmd.ExecuteNonQuery


    If pcode.Text <> "" Then
    ElseIf i > 0 Then
        MsgBox("Save Successfully!", MessageBoxIcon.Information, "Success")
        mrClean()
        ListView1.Tag = ""
        Call objLocker(False)
        Call LVWloader()
        Call calldaw()
    Else
        MsgBox("Save Failed!", MessageBoxIcon.Error, "Error!")
    End If
Catch ex As MySqlException
    MsgBox("Personnel ID Already Exist!", MessageBoxIcon.Error, "Error!")
End Try

Veuillez également vous référer à la page du manuel MySQL PRIMARY KEY et Contraintes d'index UNIQUE