Ако вашето приложение поддържа множество потребители, трябва да се уверите, че промените не са направени от друг потребител между вашата проверка за дубликати и актуализацията на базата данни.
Най-лесният начин да направите това е, както предлага mbeckish, да създадете УНИКАЛНО ограничение в колоната със заглавие:
ALTER TABLE maindatabase.animelist
ADD CONSTRAINT U_animelist_TitleAnime UNIQUE (TitleAnime)
След това машината на базата данни ще наложи уникални заглавия и вашият клиент може да обработва обратната връзка с потребителите, като улавя всяко изключение при нарушение на ограничение:
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();
}
}