1 ضمیمه
کسی تا به حالا رکورد پاک نکرده
با سلام
من می خواهم رکوردهایی که تیک خورده اند را حذف کنم ولی ظاهراً چندتایی جا می مونه
به کد زیر دقت کنید
DST.ORDERTBLRow _orderRow;
foreach (DataGridViewRow Dr in dataGridView3.Rows)
{
if ((Boolean)Dr.Cells["choose"].FormattedValue == true)
{
_orderRow = DST.ORDERTBL[Dr.Index];
DST.ORDERTBL.RemoveORDERTBLRow(_orderRow);
}
}
نقل قول: حذف رکوردهایی از دیتاست2005
اگه اشتباه نکنم ایراد کار اینجاست:
وقتی یکی رو پاک میکنی٬ بقیه شیفت میخورن یکی میان بالا٬ و توی حلقه تو میری سراغ بعدی.
این فرضیه اگه درست باشه پس :
دقیقاً اونایی جا میمونن که یکی قبلشون تیک خورده باشه. همینطوره؟
یعنی اونی که تیک خورده حذف میشه٬ حالا پایینیش تو لیست میاد جای اون که حذف شده٬ ولی تو میری سراغ بعدی و دوباره همون قبلی رو چک نمیکنی.
و به همین دلیله که وقتی از آخر به اول اومدی مشکلت حل شده.
دو تا راه به ذهنم میرسه
۲. اول لیستی از سطرهایی که میخوای حذف کنی رو انتخاب کن٬ بعد توی یک حلقه روی اون لیست جدید از توی لیست اولیت پاکشون کن.
۱. به جای foreach از while استفاده کن٬ خودن اندیس رو کنترل کن٬ و وقتی یکی رو پاک کردی٬ جلو نبر اندیست رو.
:لبخند:
راههای استانداردتری اگه کسی بلده بگه که اطلاعاتمون بیشتر شه. :چشمک:
نقل قول: حذف رکوردهایی از دیتاست2005
wowwwww
تاریخ پست رو ندیدم
عذر میخوام. از یه لینک بهش رسیدم و اصلا به تاریخ دقت نکردم :اشتباه: