यदि आपका एप्लिकेशन एकाधिक उपयोगकर्ताओं का समर्थन करता है, तो आपको यह सुनिश्चित करने की आवश्यकता है कि आपके डुप्लिकेट के लिए चेक और डेटाबेस अपडेट के बीच किसी अन्य उपयोगकर्ता द्वारा परिवर्तन नहीं किए गए हैं।
ऐसा करने का सबसे आसान तरीका है जैसा कि मैककिश ने सुझाव दिया है, शीर्षक कॉलम पर एक अद्वितीय बाधा बनाएं:
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();
}
}