PDA

View Full Version : نگرفتن مقدار تكراري در بانك اطلاعاتي



raminstyle68
چهارشنبه 05 خرداد 1389, 20:21 عصر
من تو asp 2008 يك صفحه ثبت نام براي كاربر قرار دادم ولي مي خام يكي از مقدارهايي كه وارد مي كنه مثلا username تكراري نباشه كه دوتا كاربر با يه username بتونن وارد شن.دستور sql شو مي خواستم.مرسي

hamedsabzian
چهارشنبه 05 خرداد 1389, 21:03 عصر
اگه فیلد username رو توی جدولت به هر طریقی unique تعریف کنی، خودبه خود هیچ دو رکوردی با username برابر Insert نمی شن! می تونی خطا را Handle کنی و به کاربر پیغام خطای مناسب بدی.

Mostafa_Dindar
چهارشنبه 05 خرداد 1389, 22:24 عصر
سلام ،

از دستور IF NOT EXISTS هم ميتونيد استفاده كنيد . اين دستور رو در بخش SQL جستجو يا مطرح كنيد

موفق باشيد

mohsen.nsb44
پنج شنبه 06 خرداد 1389, 09:28 صبح
من تو asp 2008 يك صفحه ثبت نام براي كاربر قرار دادم ولي مي خام يكي از مقدارهايي كه وارد مي كنه مثلا username تكراري نباشه كه دوتا كاربر با يه username بتونن وارد شن.دستور sql شو مي خواستم.مرسي
اگه تو جدولت يوزر نيم رو كليد اصلي قرار بدي ديگه مقدار تكراري نمي گيره

Mostafa_Dindar
پنج شنبه 06 خرداد 1389, 10:28 صبح
اگه تو جدولت يوزر نيم رو كليد اصلي قرار بدي ديگه مقدار تكراري نمي گيره

ولي Exception اي رو Throw ميكنه . ضمن اينكه انتخاب فيلدي رشته اي براي كليد اصلي كار بسيار اشتباهي هست كه افراد تازه كار به كرات اون رو مرتكب ميشوند .

سعي كنيد كليد شما Exact Numeric باشد . يعني tinyint , smallint , bigint , decimal, money,numeric .

اگر تفاوت اين دو رو ميدونستيد و كليد اصلي رو رشته اي انتخاب ميكرديد ، بشدت پشيمون ميشديد .


شاد باشيد

mohsen.nsb44
پنج شنبه 06 خرداد 1389, 11:28 صبح
ولي Exception اي رو Throw ميكنه . ضمن اينكه انتخاب فيلدي رشته اي براي كليد اصلي كار بسيار اشتباهي هست كه افراد تازه كار به كرات اون رو مرتكب ميشوند .

سعي كنيد كليد شما Exact Numeric باشد . يعني tinyint , smallint , bigint , decimal, money,numeric .

اگر تفاوت اين دو رو ميدونستيد و كليد اصلي رو رشته اي انتخاب ميكرديد ، بشدت پشيمون ميشديد .


شاد باشيد
همون طور كه فرموديد اينجانب يك فرد مبتدي هستم ميشه در مورد Exception و Throw يكم توضيح بدين