Si votre application prend en charge plusieurs utilisateurs, vous devez vous assurer que des modifications ne sont pas apportées par un autre utilisateur entre votre vérification des doublons et la mise à jour de la base de données.
Le moyen le plus simple de procéder est, comme suggéré par mbeckish, de créer une contrainte UNIQUE sur la colonne de titre :
ALTER TABLE maindatabase.animelist
ADD CONSTRAINT U_animelist_TitleAnime UNIQUE (TitleAnime)
Le moteur de base de données appliquera alors des titres uniques et votre client pourra gérer les commentaires des utilisateurs en interceptant toute exception de violation de contrainte :
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();
}
}