سلام
در ثبت اطلاعات درون دیتابیس لازمه از ثبت رکوردهای تکراری جلوگیری بشه و یا حتی میتوان رکورد مورد نظر را اپدیت نمود
مثلا در ثبت اطلاعات یه شرکت یا دانشجویی میتوان شرط ورود اطلاعات را چک کردن شماره دانشجویی و یا شماره شرکت و
یا شماره تلفن گذاشت که اگه وجود نداشت اطلاعات وارد گردد
کار با دیتابیس در سی شارپ و نحوه ورود اطلاعات ابتکاری است درسته روش های استانداردی برای چنین کارهایی یعنی درج
و حذف و اپدیت اطلاعات در دیتابیس توسط شرکت سازنده یعنی ماکروسافت ارایه شده بعنوان الگو و استاندارد میباشد
اما سعی کرم روشی که دارای نقص کمتر و سرعت بیشتر هست رو ارایه کنم
ابتدا یک تابع میسازیم من اسمش رو تکراری گذاشتم
سپس هدر استفاده از دیتابیس اکسس رو به پروژه اضافه کنید
و بعد از connection-command-reader ابجکت میسازیم
بعد از تعریف متد کانکشن فیلد مورد نظر رو چک میکنیم که در دیتابیس وجود دارد یا نه اگر وجود داشت پیام تکراری رو میده اگر نه ثبت میشه
void tekrary()
{
OleDbCommand cmd;
OleDbConnection conn;
OleDbDataReader reader;
conn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+Application.StartupPath+@"\DbPage.accdb";);
cmd = new OleDbCommand();
cmd.Connection = conn;
conn.Open();
cmd.CommandText = "Select tell From tblpage Where tell='" + txttell.Text + "' ";
reader = cmd.ExecuteReader();
if (!reader.Read())
{
btn_register();
}
else
{
MessageBox.Show("ردیف مورد نظر تکراری است ");
return;
}
}
void btn_register()
{
Random rnd = new Random();//ساخت ابجکت از رندوم
num = rnd.Next(1000, 10000);//ایجاد اعداد رندوم و ریختن اون تو متغییر
OleDbConnection cnn = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+Application.StartupPath+@"\DbPage.accdb";);
OleDbCommand cmd = new OleDbCommand("Insert Into tblpage (numrnd,username,tell,mail,address)Values(" + num + ",@user,@tell,@mail,@address) ", cnn);
cmd.Parameters.Clear();//تکست باکس 1 رو اینجا ننوشتم چون تابع رندوم اعداد رو توش میریزه و لازم به استفاده در پارامتر نیست
cmd.Parameters.AddWithValue("@user", textBox2.Text);
cmd.Parameters.AddWithValue("@tell", txttell.Text);
cmd.Parameters.AddWithValue("@mail", textBox4.Text);
cmd.Parameters.AddWithValue("@address", textBox5.Text);
cnn.Open();
cmd.ExecuteNonQuery();
cnn.Close();
}