Mysql
 sql >> Datenbank >  >> RDS >> Mysql

verhindert doppelte Einträge in die Datenbank

Tut mir leid, sagen zu müssen, dass dies der falsche Ansatz ist.

Datenbanken haben ein eingebautes System, um zu verhindern, dass Daten dupliziert werden. Dies geschieht durch Primärschlüssel oder eindeutige Schlüsselbeschränkungen. In Ihrem Fall haben Sie bereits einen Primärschlüssel erstellt. Es besteht also absolut keine Notwendigkeit, SELECT COUNT(*) auszuführen Abfrage.

Fügen Sie stattdessen einfach direkt in die Tabelle ein und fangen Sie den Integritätsfehler ab, wenn der Pcode bereits vorhanden ist.

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

Bitte lesen Sie auch die MySQL-Handbuchseite PRIMARY KEY und EINZIGARTIGE Indexbeschränkungen