PDA

View Full Version : حذف رکوردهایی از دیتاست2005



مطهر
شنبه 12 آذر 1384, 23:31 عصر
با سلام
من می خواهم رکوردهایی که تیک خورده اند را حذف کنم ولی ظاهراً چندتایی جا می مونه
به کد زیر دقت کنید

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);
}
}

مطهر
یک شنبه 13 آذر 1384, 12:17 عصر
ای بابا
یعنی تا حالا کسی از توی دیتاست اطلاعات پاک نکرده

مطهر
دوشنبه 14 آذر 1384, 08:19 صبح
بابا ای ول
گفتیم اینجا همه ADO کارند در کمتر از چند ثانیه جواب ما را استاد کردند
اگر کسی زحمت 2003 اش را بکشه ممنون میشم

shahab_ss
دوشنبه 14 آذر 1384, 21:40 عصر
;()fuckingds.Customers.Rows[0].Delete


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskdeletingrecordsindataset.asp

bachemosbat
سه شنبه 15 آذر 1384, 18:16 عصر
this.BindingContext[dataset.datatable].position=row;
((datarowview)this.BindingContext[dataset.datatable].current).delete();
یا
this.BindingContext[dataset.datatable].position=row;
((datarowview)this.BindingContext[dataset.datatable].current).row.delete();

مطهر
سه شنبه 15 آذر 1384, 23:20 عصر
موقعی که تک تک انتخاب می کنم و حذف می کنم جواب میده
مشکل من حذف اونایی است که انخاب می کنیم
برای این کار من از یک حلقه استفاده می کنم که با مشکل رویرو می شوم
به سوال من در ابتدای پست دقت کنید
ممونم

danial82
چهارشنبه 16 آذر 1384, 08:17 صبح
مطهر جان سلام
شرمنده که چند روز نبودم عزیز مگه تو نمیخوای اطلاعات و از دیتاست پاک کنی کد زیر و تو یه foreach بذاری و تو حلقه هم چک کن ببین کدوم تیک خورده هر کدوم که تیک خورده بود حذف کن اگه دیدی چیزی جا می ماند خط به خط برنامه رو کامپایل کن شاید اشکال از جا دیگه باشه



foreach(DataRow myRow in Customers.Rows)








;()fuckingds.Customers.Rows[0].Delete


http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskdeletingrecordsindataset.asp

مطهر
چهارشنبه 16 آذر 1384, 12:39 عصر
تو حلقه هم چک کن ببین کدوم تیک خورده هر کدوم که تیک خورده
ممنونم عزیز
چه جوری چک کنم
اگه ممکنه کامل تر

danial82
دوشنبه 21 آذر 1384, 06:14 صبح
مطهر عزیز سلام
شرطت به نظر درسته بجای متد remove از متد Delete استفاده کن فکر میکنم درست شه

مطهر
دوشنبه 21 آذر 1384, 07:55 صبح
یک حلقه ی کاهشی استفاده کردم جواب داد
ممونم از همه

danial82
دوشنبه 21 آذر 1384, 08:12 صبح
اگه امکان داره برات سورس تصحیح ده رو هم بزار

mn_zandy63
پنج شنبه 01 مرداد 1388, 01:48 صبح
اگه اشتباه نکنم ایراد کار اینجاست:
وقتی یکی رو پاک میکنی٬ بقیه شیفت میخورن یکی میان بالا٬ و توی حلقه تو میری سراغ بعدی.

این فرضیه اگه درست باشه پس :
دقیقاً اونایی جا میمونن که یکی قبلشون تیک خورده باشه. همینطوره؟
یعنی اونی که تیک خورده حذف میشه٬ حالا پایینیش تو لیست میاد جای اون که حذف شده٬ ولی تو میری سراغ بعدی و دوباره همون قبلی رو چک نمیکنی.

و به همین دلیله که وقتی از آخر به اول اومدی مشکلت حل شده.

دو تا راه به ذهنم میرسه
۲. اول لیستی از سطرهایی که میخوای حذف کنی رو انتخاب کن٬ بعد توی یک حلقه روی اون لیست جدید از توی لیست اولیت پاکشون کن.
۱. به جای foreach از while استفاده کن٬ خودن اندیس رو کنترل کن٬ و وقتی یکی رو پاک کردی٬ جلو نبر اندیست رو.
:لبخند:

راههای استانداردتری اگه کسی بلده بگه که اطلاعاتمون بیشتر شه. :چشمک:

mn_zandy63
پنج شنبه 01 مرداد 1388, 01:50 صبح
wowwwww
تاریخ پست رو ندیدم
عذر میخوام. از یه لینک بهش رسیدم و اصلا به تاریخ دقت نکردم :اشتباه: