Hvis din applikation understøtter flere brugere, skal du sikre dig, at ændringer ikke foretages af en anden bruger mellem din kontrol for dubletter og databaseopdateringen.
Den nemmeste måde at gøre dette på er som mbeckish foreslået, at oprette en UNIK begrænsning på titelkolonnen:
ALTER TABLE maindatabase.animelist
ADD CONSTRAINT U_animelist_TitleAnime UNIQUE (TitleAnime)
Databasemotoren vil derefter håndhæve unikke titler, og din klient kan håndtere brugerfeedback ved at fange enhver undtagelse for overtrædelse af begrænsninger:
void checkData()
{
SuspendLayout();
try
{
updateData();
}
catch (Exception ex)
{
MySqlException sqlEx = ex as MySqlExecption;
// If there is a constraint violation error.
// (I may have the wrong error number, please test.)
if (sqlEx != null && sqlEx.Number == 1062)
{
my = Form.ActiveForm as MyList;
my.msg = new Message_Box();
my.msg.Descrip.Text = "Record is already in the Database";
my.msg.Title.Text = "Duplicate Record";
my.msg.ShowDialog();
}
else
{
MessageBox.Show("" + ex);
}
}
finally
{
ResumeLayout();
}
}