PDA

View Full Version : سوال: مرتب سازی دوباره کلید اصلی جدول



علی فتحی
پنج شنبه 01 خرداد 1393, 01:47 صبح
سلام .خیلی جستجو کردم به نتیجه نرسیدم .این تاپیک رو ایجاد کردم
جدولی که ردیف او بصورت اتوماتیک عدد وارد میشه /یا دستی فرقی نداره
مثلا:
1
2
3
4
5
حالا مثلا ردیف 3 رو حذف کنیم بصورت زیر در میاد
1
2
3
5
حالا چگونه میتوان انو دوباره سازی کرد ترتیب اعداد رو تا بصورت زیر در بیاد .با تشکر
1
2
3
4
البته با انتی تی من دارم کار میکنم

hadi46
پنج شنبه 01 خرداد 1393, 09:13 صبح
با سلام می توانید از روش زیر هنگام درج در دیتابیس استفاده نمایید

set identity_insert YourTable on insert YourTable (YourID, OtherField) values(.. )
set identity_insert YourTable off

علی فتحی
پنج شنبه 01 خرداد 1393, 19:20 عصر
با تشکر ولی منظور من هنگام درج نیست . دوباره سازی اعداد هستش

omid nasri
سه شنبه 14 مرداد 1393, 13:25 عصر
شاید اصولی نباشه :

شما وقتی یک رکورد رو حذف می کنید می تونید شماره رکورد رو گرفته و با دستور کلی ویرایش رکورد از اون رکورد به بعد یک شماره از سایر کم بشه.
امیدارم متوجه شده باشی، فعلا استفاده کن از این روش تا الگوریتم بهتری پیدا کنی.

hamid_hr
سه شنبه 14 مرداد 1393, 13:40 عصر
شماره تو دیتابیسو تغییر نباید داد
باید یه ستون شماره ردیف برا اون select درست کنی

مثال
select ROW_NUMBER()over(order by IDPK), * from Answers t1

علی فتحی
دوشنبه 03 آذر 1393, 01:28 صبح
مرسی از همگی والله اصلا سر درنیاوردم چی نوشتین و چی فرمودین اصلا

علی فتحی
سه شنبه 07 مهر 1394, 23:25 عصر
برنامه رافع همچین چیزی داره وقتی سندی رو خذف میکنی دوباره اعداد از 1 الی اخر مرتب میشه .کسی بلد نیست؟

Mahmoud.Afrad
چهارشنبه 08 مهر 1394, 05:27 صبح
کلیداصلی جدول که به صورت خودکار مقدار میگیره با شماره ردیف که در datagridview نمایش داده میشه متفاوت هست و نباید کلیداصلی رو به عنوان شماره ردیف در نظر بگیرید.
برای شماره ردیف ، کافیه بعد از اینکه داده های datagridview تغییر کرد(شامل پر کردن، حذف سطر، افزودن سطر و ...) یک متد که کارش ایجاد شماره ردیف هست رو در رویدادهای مناسب فراخوانی کنی.

private void Form1_Load(object sender, EventArgs e)
{
SetRowNumber();
dataGridView1.Sorted += (o, args) => { SetRowNumber(); };
dataGridView1.RowsRemoved += (o, args) => { SetRowNumber(); };
dataGridView1.RowsAdded += (o, args) => { SetRowNumber(); };
}

private void SetRowNumber()
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.HeaderCell.Value = (row.Index + 1).ToString();
}
dataGridView1.AutoResizeRowHeadersWidth(DataGridVi ewRowHeadersWidthSizeMode.AutoSizeToAllHeaders);
}