Nếu ứng dụng của bạn hỗ trợ nhiều người dùng, bạn cần đảm bảo rằng người dùng khác không thực hiện các thay đổi giữa việc kiểm tra các bản sao và cập nhật cơ sở dữ liệu.
Cách dễ nhất để làm điều này là như mbeckish đã đề xuất, tạo một ràng buộc DUY NHẤT trên cột tiêu đề:
ALTER TABLE maindatabase.animelist
ADD CONSTRAINT U_animelist_TitleAnime UNIQUE (TitleAnime)
Sau đó, công cụ cơ sở dữ liệu sẽ thực thi các tiêu đề duy nhất và ứng dụng khách của bạn có thể xử lý phản hồi của người dùng bằng cách bắt bất kỳ ngoại lệ vi phạm ràng buộc nào:
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();
}
}