PDA

View Full Version : سوال: کمک - پشت سر هم کدرن عدد ID جدید



arman_Delta2002
سه شنبه 05 اردیبهشت 1391, 16:59 عصر
سلام
فرض کنین ما 5 تا ردیف داریم و یک کلید شمارش خودکار(AutoNumber) که با ID به صورت 1-2-4-5-6 هست و اگر ما ردیف جدیدی ایجاد کنیم به تب آیدی میشود 7 حالا ما ردیف جدید را ایجاد کردیم و آیدی شد 7 بعد همان ردیف 7 را پاک میکنیم و یک ردیف جدید ایجاد میکنیم و آیدی به صورت خود کار میشود 8
حال من میخوام بجای این که آیدی 8 بشه همان 7 بشه که قبلا پاک شده بود چطور میشه این کارو کرد و اخرین آیدی که ساخته میشه به صورت اتوماتیک عدد بعدی آیدی قبلیش باشه نه عدد بعدی که قبلا ایجاد و بعد حذف شده بود
یعنی 1-2-4-5-6-8
بشه 1-2-4-5-6-7

دقت داشته باشین من فقط از ردیف 5 به بعد رو خواستم مرتب شه نه همه آیدی ها

esiprogrammer
جمعه 08 اردیبهشت 1391, 01:10 صبح
اگه از فیلد Autonumber یا Identity استفاده کنید. امکان ویرایش این فیلد و مقدار دهی اون رو ندارید.
و خود اسکیو ال یا اکسس این کار رو انجام میده.
و به ازای هر رکوردی که ثبت میشه یک شمارنده اضافه میکنه .

اما برای اینکار شما باید نوع این فیلد رو int بگذارید و خودتون وقتی که رکورد رو درج میکنید. همیشه مقدار max
رو پیدا کنید و یک واحد اضافه کنید. سپس اون رو درج کنید.

Hybrid
سه شنبه 19 اردیبهشت 1391, 12:24 عصر
اما برای اینکار شما باید نوع این فیلد رو int بگذارید و خودتون وقتی که رکورد رو درج میکنید. همیشه مقدار max
رو پیدا کنید و یک واحد اضافه کنید. سپس اون رو درج کنید.

خوب بازهم اشکال داره ،

شما فرض کن 3 تا رکورد دارین به شماره های 1 و 2 و 3 حالا میاین شماره 2 رو حذف میکنین طبق گفته شما اگه بیاین یک رکورد جدید رو اضافه کنیم بیشترین مقدار یعنی 3 رو بدست میاریم و بعلاوه 1 میکنیم که میشه 4 در حالی که عدد 2 رو نداریم !! یعنی رکورد های جدید شماره های 1 3 4 رو دارن

nasimsaba
سه شنبه 02 خرداد 1391, 11:22 صبح
سلام دوست عزیز
اول اینکه شما باید فیلد id تون رو Autonumberنذارین. و بعدش پس از حذف رکوردهای بعد از اون id رو مقدار فیلد Id شون رو یک واحد کم کنین. و موقع اضافه کردن رکورد جدید همونطور که دوستمون گفتن بیشترین مقدار رو بدست بیارین و یک واحد بهش اضافه کنین.
اینطوری مشکلتون حل میشه.

موفق باشید.