PDA

View Full Version : سوال: چطور وقتی یک رکورد را حذف کردیم شماره ها دوباره به ترتیب شوند؟



leila71
شنبه 13 اسفند 1390, 14:11 عصر
سلام دوستان گل من می خوام بدونم وقتی که یه رکوردی را از بانک sql حذف می کنم البته با vb.net ترتیب ععدها به هم می ریزد چه کار کنم خواهشا راهنمایی کنید خیلی حیاتی است.با سپاس فراوان

Hybrid
شنبه 13 اسفند 1390, 14:18 عصر
سلام دوستان گل من می خوام بدونم وقتی که یه رکوردی را از بانک sql حذف می کنم البته با vb.net ترتیب ععدها به هم می ریزد چه کار کنم خواهشا راهنمایی کنید خیلی حیاتی است.با سپاس فراوان

سلام ، اون فیلد اعداد از نوع Autonumber هست؟؟

leila71
شنبه 13 اسفند 1390, 14:28 عصر
این و می دونم که Autonumber هست وقتی که یک رکورد حذف می کنم ترتیب اعداد به هم می خورد می خواهم که دوباره مرتب شوند.

Hybrid
شنبه 13 اسفند 1390, 14:37 عصر
دوست عزیز من هم قبلا همین مشکل رو داشتم ، متاسفانه نتونستم داخل بانک قضیه رو حل کنم ولی پیشنهاد میدم از روش زیر استفاده کنین :


شما یه ستون اضافه کنید به دیتاگریدتون و زمانی که اطلاعات بایند میشه تو گرید یه حلقه بزارید که به تعداد رکوردهای دیتاتیبل عدد بریزه تو ستون ردیف.


موفق باشید./

gilsoft
شنبه 13 اسفند 1390, 16:21 عصر
این و می دونم که Autonumber هست وقتی که یک رکورد حذف می کنم ترتیب اعداد به هم می خورد می خواهم که دوباره مرتب شوند.
سلام دوست عزیز
یه سر به این لینکها بزن ببین کار تون راه میوفته :
http://barnamenevis.org/showthread.php?60658-%D8%B4%D9%85%D8%A7%D8%B1%D9%87-%D8%B1%D8%AF%DB%8C%D9%81-%D8%AF%D8%B1-sql&highlight=row_number
http://barnamenevis.org/showthread.php?43484-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%DB%8C%DA%A9-%D8%B3%D8%AA%D9%88%D9%86-AutoNumber-%D8%AF%D8%B1-DataGridView&highlight=row_number

فرید نجفلو
شنبه 13 اسفند 1390, 22:03 عصر
دوست عزیز اگه اون ستون کلید اصلی شماست من پیشنهاد می کنم اصلا دنبال راه حلی براش نباشید!
نه که نداشته باشه بلکه ممکنه شما رو تو درد سر بندازه !
برای یکی از دوستان در خصوص برنامه ایشون و در ست در همین رابطه دلیل و راه حلش رو گفتم یه سر به این تاپیک (http://barnamenevis.org/showthread.php?330582-فرم-صدور-سند-حسابداری-چه-جوری-باشه-خوبه؟&p=1455204&viewfull=1#post1455204)بزنید

Hossein Bazyan
شنبه 13 اسفند 1390, 22:18 عصر
سلام

یک ردیف به کوئریت اضافه کن


set @r=0;
SELECT @r := @R + 1 AS Rij, id, email
FROM broesk_paramfile

mp_mp353
شنبه 13 اسفند 1390, 22:56 عصر
نمیشه ترتیب رو درست کرد چراکه فیلد اصلی (کلید) که باشه تریتیب داده ها به هم میریزه. شما به جای Auto number بیا number تعریف کن و خودت بهش نامبر رو با حلقه بده. در این صورت میتونی تو کد مشخص کنی اگه شماره ای قبلی خالی شده حالا اونجا این مقدار جدید رو قرار بده. البته این برای داده های اندک خوبه و برای داده های بیشتر سرعت رو پایین میاره.

Hossein Bazyan
یک شنبه 14 اسفند 1390, 02:05 صبح
نمیشه ترتیب رو درست کرد چراکه فیلد اصلی (کلید) که باشه تریتیب داده ها به هم میریزه. شما به جای Auto number بیا number تعریف کن و خودت بهش نامبر رو با حلقه بده. در این صورت میتونی تو کد مشخص کنی اگه شماره ای قبلی خالی شده حالا اونجا این مقدار جدید رو قرار بده. البته این برای داده های اندک خوبه و برای داده های بیشتر سرعت رو پایین میاره.

سلام

با دستور Sql میشه اینکار رو کرد و هر بار هم باید رفرش بشه . مشکلی نداره

فرید نجفلو
یک شنبه 14 اسفند 1390, 14:47 عصر
سلام

با دستور Sql میشه اینکار رو کرد و هر بار هم باید رفرش بشه . مشکلی نداره

منظور دوستمون Sort کردند نیست ایشون می خواد مقدار یا ستون رو که به صورت Identity (در اکسس Auto number ) تعریف شده تغییر بدن
که اینم موتور SQL Server نه اجازه تغییر در محتویات میده و نه اجازه می ده اونو از حالت Identity خارج کنید ( با دستور Alter)

اگه واقا مجبور به این کار باشید یه راه داره:
یه تابع(داخل SQL) بسازید که اطلات جدول رو داخل یک جدول موقت کپی کنه و جدول اصلی رو حذف و دوباره ایجاد کنه و اطلاعات جدول موقت رو باز بریزه تو جدول!
خوب مشکلات و عیوب این کار هم که کاملا واضحه