PDA

View Full Version : جلوگیری از ثبت داده تکراری



tatu3882
چهارشنبه 28 فروردین 1387, 12:23 عصر
با سلام
من یه فرمی دارم که یه فیلد کد ملی داره و از نوع کلید اصلی در دیتابیس تعریف شده
وقتی داده تکراری وارد می شه از برنامه می زنه بیرون
چیکار کنم که توی فرمم وقتی دکمه ثبت رو زدم تکراری بودن فیلدی رو در دیتابیس بررسی کنه و پیغام دلخواه رو نمایش بده
کمکم کنید

smt_414
چهارشنبه 28 فروردین 1387, 13:48 عصر
سلام
برای اینکه تکراری بودن داده رو توی پایگاه داده بررسی کنید بسته به نوع پایگاه داده ای که استفاده کردید توی بخش مربوط به خودش جستجو کنید قطعا براش جوابی پیدا می کنید

برای این مورد که از برنامه می پره بیرون
شما لغت (try , catch) رو توی همین بخش جستجو کنید
که زمانی ایرروری به وجود می آد بتونید اون رو کنترل و پیغام های مناسب برای کاربر نمایش بدید

ولی یه مورد شخصی
من معمولا موارد رو توی خود سی شارپ کنترل می کنم تا اینکه بزارم به پایگاه داده بکشه
یعنی موردی که نباید تکراری باشه توی برنامه پایگاه رو بررسی می کنم و اگه تکراری نبود اون رو در پایگاه ثبت می کنم .

موفق باشید

amir21233
پنج شنبه 05 اردیبهشت 1387, 23:11 عصر
با سلام
با استفاده از دستور

OleDbCommand objcomtel = newOleDbCommand("SELECT count(*) FROM telephon WHERE tel LIKE @tel", objcon);
objcon.Open();
objcomtel.Parameters.AddWithValue("@tel", int.Parse(txtTel.Text));
object maxtel = objcomtel.ExecuteScalar();
int m = (int)maxtel;
if (m > 0)
{
MessageBox.Show("in shomare be sabt reside", "error");
txtTel.Text = "";
objcon.Close();
}

gdevnb
پنج شنبه 05 اردیبهشت 1387, 23:57 عصر
با سلام
با استفاده از دستور



OleDbCommand objcomtel = newOleDbCommand(
"SELECT count(*) FROM telephon WHERE tel LIKE @tel", objcon);
objcon.Open();
objcomtel.Parameters.AddWithValue("@tel", int.Parse(txtTel.Text));
object maxtel = objcomtel.ExecuteScalar();
int m = (int)maxtel;
if (m > 0)
{
MessageBox.Show("in shomare be sabt reside", "error");
txtTel.Text = "";
objcon.Close();
}


برنامه رو تو تگ کد بزارید تا بهتر بشه خوندش.

razavi_university
جمعه 06 اردیبهشت 1387, 16:27 عصر
میتونین خطاهای داخل sql رو داخل برنامه برگردونین
RAISERROR رو جستجو کنین