PDA

View Full Version : حذف سطر های انتخاب شده در دیتا گرید ویو



zahra1372
شنبه 19 بهمن 1392, 09:58 صبح
سلام
چطوری میتونم به سطرهای انتخاب شده در دیتا گرید ویو دسترسی داشته باشم؟
میخام سطرهای انتخاب شده رو حذف کنم.

mousa1992
شنبه 19 بهمن 1392, 10:36 صبح
از خاصیت SelectedRows میتونید استفاده کنید
پیشنهاد میکنم ستون از نوع checkbox داشته باشید و سطر هایی که چک خوردن رو حذف کنید

Mansoor92
شنبه 19 بهمن 1392, 11:03 صبح
سلام
با دستور زیر میتونید id سطر انتخابی رو بدست بیارید و بعدش با نوشتن query اون رو حذف کنید...


int delete=Int32.Parse(dgv.Currentrow.Cells[id].Value.Tostring())

zahra1372
شنبه 19 بهمن 1392, 14:50 عصر
پیشنهاد میکنم ستون از نوع checkbox داشته باشید و سطر هایی که چک خوردن رو حذف کنید

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

mehrdad.ghorbaniyan
شنبه 19 بهمن 1392, 18:10 عصر
سلام.یه چک به دیتا گرید اضافه کن .بعد این کد زیرو تو دکمه حذف بذار.سطر هایی را پاک میکنه که تیک خوردند.

if (MessageBox.Show(" آیا مشترکین انتخاب شده حذف شوند ؟", "حذف", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
for (int i = 0; i < gv_phonebook.RowCount; i++)
{
if (Convert.ToBoolean(gv_phonebook.Rows[i].Cells[1].Value) == true)
sql.sqlstr("delete phonebook where id=" + gv_phonebook.Rows[i].Cells[0].Value);
}

}

zahra1372
یک شنبه 20 بهمن 1392, 14:44 عصر
سلام.یه چک به دیتا گرید اضافه کن .بعد این کد زیرو تو دکمه حذف بذار.سطر هایی را پاک میکنه که تیک خوردند.

if (MessageBox.Show(" آیا مشترکین انتخاب شده حذف شوند ؟", "حذف", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
for (int i = 0; i < gv_phonebook.RowCount; i++)
{
if (Convert.ToBoolean(gv_phonebook.Rows[i].Cells[1].Value) == true)
sql.sqlstr("delete phonebook where id=" + gv_phonebook.Rows[i].Cells[0].Value);
}

}

متشکرم.
کد شما کاملا جواب میده.
ولی کلا چیز جالبی نشد:ناراحت: باش حال نکردم.

mehrdad.ghorbaniyan
یک شنبه 20 بهمن 1392, 20:10 عصر
متشکرم.
کد شما کاملا جواب میده.
ولی کلا چیز جالبی نشد:ناراحت: باش حال نکردم.

دوست عزیز دستورش همینه.اگه خوشت نیومد میتونی یه جور دیگه بنویسی

arash.abdollahikakroodi
سه شنبه 22 بهمن 1392, 05:14 صبح
اینطوری :
foreach (DataGridViewRow item in MyGridView.Rows)
if (item.Cells[0].Value != null && (bool)item.Cells[0].Value)
{
//حذف سطر
}

zahra1372
سه شنبه 22 بهمن 1392, 14:47 عصر
اینطوری :
foreach (DataGridViewRow item in MyGridView.Rows)
if (item.Cells[0].Value != null && (bool)item.Cells[0].Value)
{
//حذف سطر
}

موقعی که سطری تیک نداره خطا میده. به if ش گیر میده.:افسرده:

zahra1372
سه شنبه 22 بهمن 1392, 22:17 عصر
میخام ازش استفاده کنم.:لبخندساده:
ولی میخام کاربر یه سری سطر رو تیک بزنه و ثبت بشه تو جدول..
ولی مسئله اینجاست که یه عالمه سطر داده (حدود 800 تا) هر دفعه باید انتخاب کنه.
میخام یه چک باکس توی عنوان ستون داشته باشم که همه رو انتخاب کنه و کاربر هر کدوم رو نخاست تیکشو برداره.
میشه آیا؟؟

mousa1992
چهارشنبه 23 بهمن 1392, 00:18 صبح
اینم با ی حلقه شدنی هست
اما 800 رکورد در یک صفحه! برنامه کاراییشو از دست میده؛ پس بهتره به فکر صفحه بندی گرید باشید

zahra1372
چهارشنبه 23 بهمن 1392, 11:57 صبح
اینم با ی حلقه شدنی هست

خب توی عنوان ستون چطوری چک باکس داشته باشم؟؟؟

zahra1372
چهارشنبه 23 بهمن 1392, 12:54 عصر
به نظرتون چیکار کنم که سطرهایی که تیک میخوره در حالت انتخاب باشه؟؟؟؟؟؟؟؟

mousa1992
چهارشنبه 23 بهمن 1392, 20:49 عصر
contextmenustrip گزینه خوبی برا انتخاب همه میتونه باشه
در مورد انتخاب شدن سطر های تیک خورده نمیدونم اما میتونی backcolor بدی بهشون
سوالاتتون بیشتر سلیقه ای هست تا فنی

موفق باشید

zahra1372
چهارشنبه 23 بهمن 1392, 21:23 عصر
از عنوان تاپیک دور شدیم

جواب این تاپیک


private void btnDelete_Click(object sender, EventArgs e)
{
if (dgvSelectedVillage.RowCount == 0)
return;
if (MessageBox.Show("سطر های انتخاب شده حذف میشوند" + "\n" + "آیا مطمئنید؟", "حذف", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
{
var db = new LINQDataContext();
for (int i = 0; i < dgvSelectedVillage.SelectedRows.Count; i++)
db.sptblTermVillageDelete(txtTermID.Text, dgvSelectedVillage.SelectedRows[i].Cells["VillageID"].Value.ToString());
dgvSelectedVillage.DataSource = db.sptblTermVillageSelect2(txtTermID.Text);
}
}

خودتون متناسب با کدتون تغییرش بدین دیگه..

zahra1372
چهارشنبه 23 بهمن 1392, 21:34 عصر
contextmenustrip گزینه خوبی برا انتخاب همه میتونه باشه

contextmenustrip ؟؟!!!! چه ربطی داره؟ والا من از این برای منوی راست کلیک استفاده کردم. منظورتون رو متوجه نشدم.


در مورد انتخاب شدن سطر های تیک خورده نمیدونم اما میتونی backcolor بدی بهشون

:تشویق::لبخندساده:


سوالاتتون بیشتر سلیقه ای هست تا فنی

خخخخ:لبخند: