PDA

View Full Version : مشکل عجیب با فیلد کلید



galesh
پنج شنبه 13 مهر 1391, 11:44 صبح
سلام دوستان . من دارم برنامه ای برای صدور فاکتور می نویسم . در جدول مشتری دو فیلد کلید ID و FACTORID درست کردم که فیلد id یک فیلد identity است و من با اون مشکلی ندارم . اما در مورد شماره فاکتور وقتی در فرم، دو شماره فاکتور یکسان وارد میکنم برنامه بدون هیچ پیغام خطایی اونها رو در Factorid ثبت میکنه . در حالی که این فیلد کلیده و بالطبع باید فقط مقادیر یکتا رو قبول کنه !!:متعجب:
ممنون میشم اگه روشنم کنید که اشکال کارم کجاست .

veniz2008
پنج شنبه 13 مهر 1391, 12:04 عصر
سلام. اول این بگم که طراحیتون اشتباهه. آی دی مشتری و آی دی فاکتور رو که همزمان در جدول مشتری نمیزارن. از این بگذریم. خوب اتفاقی که می افته کاملا طبیعیه. شما کلید جدول رو ترکیبی گرفتید و id هم که identity هستش. حالا Factorid رو صدبار تکراری هم وارد کنی چون id بصورت اتوماتیک اضافه میشه هیچوقت تکراری ثبت نمیشه. اگر میخوای جلوی تکراری رو بگیری کلید رو فقط روی factorid بذار و identity هم کن.(بازم میگم که طراحیتون اشتباهه).
موفق باشی دوست من.

galesh
پنج شنبه 13 مهر 1391, 12:30 عصر
خیلی ممنون . مشکلم حل شد . اما یه سوال دیگه دارم . این که چطور مشخص کنم که اگر کاربر در فیلد کلید مقداری تکراری وارد کرد پیغامی به او داده شود . نه اینکه کلا برنامه از حالت اجرا خارج بشه . باز هم ممنون .

danialafshari
پنج شنبه 13 مهر 1391, 13:53 عصر
خوب شما باید بعد از وازد کزدن کد توسط کاربر یک فیلتر در بانک اطلاعاتی انجام بدید و اگر Count بیشتر از 0 بود ارور بده به کاربر

galesh
پنج شنبه 13 مهر 1391, 13:59 عصر
میشه واضح تر توضیح بدید ؟

danialafshari
پنج شنبه 13 مهر 1391, 14:12 عصر
قسمتی از کد برنامم

tbl_SystemTableAdapter.Check_in_TblSystem(dbDataSe t.tbl_System, int.Parse(txtID_Product.Text));
if (bindingSource1.Count > 0)
{
MessageBox.Show("تکراری است", "تکراری, MessageBoxButtons.OK, MessageBoxIcon.Error);
lblCount.Text = "تعداد کدهای دریافتی توسط این شخص : " + bindingSource1.Count.ToString();
return;
}

if (bindingSource1.Count != 0)
{
lblCount.Text ="تعداد کدهای دریافتی توسط این شخص : "+ bindingSource1.Count.ToString();
}


من از binding استفاده می کنم در خط اول جستجو انجام میشه اگر تعداد فیلد های یافت شده بزرگتر از 0 بود ارور میده به کاربر که تکراریه !
امیدوارم متوجه شده باشید