Mysql
 sql >> Database >  >> RDS >> Mysql

prevenire voci duplicate nel database

Mi dispiace dire che questo è l'approccio sbagliato.

I database hanno un sistema integrato per impedire la duplicazione dei dati. Ciò avviene tramite chiavi primarie o vincoli di chiave univoci. Nel tuo caso, hai già creato una chiave primaria. Quindi non è assolutamente necessario che tu lo faccia SELECT COUNT(*) interrogazione.

Invece, basta inserire direttamente nella tabella e catturare l'errore di integrità quando il pcode esiste già.

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

Fare riferimento anche alla pagina del manuale MySQL CHIAVE PRIMARIA e Vincoli di indice UNICI