删除和数据集的更新行(C#)
问题描述:
我的形式:删除和数据集的更新行(C#)
我想在数据集中删除所选行。按钮“删除”有这个处理程序:
int indexForDeleting = 0;
bool reason = true;
foreach (DataGridViewRow item in this.dataGridView1.SelectedRows)
{
this.dataGridView1.Rows.RemoveAt(item.Index);
if (reason)
{
indexForDeleting = item.Index;
reason = false;
}
}
dataSet11.flight.Rows.Remove(dataSet11.flight.Rows[Math.Abs(indexForDeleting)]);
dataSet11.flight.AcceptChanges();
选定的行只在DataGridView中删除,但我想在DataGridView和DataSet中删除行。
答
如果该网格绑定到DataTable,那么删除该表的DataRow,而不是网格行。类似这样的:
int rowIdx = dataGridView1.CurrentCell.RowIndex;
DataRowView drv = (DataRowView)dataGridView1.Rows[rowIdx].DataBoundItem;
DataRow dr = drv.Row;
dr.Delete();
这将删除该行并更新网格。
没有解决问题,行只删除datagridview – bsuart
是的。 DataRow.Delete()将该行的RowState属性设置为Deleted。当你将DataSet/DataTable更新到数据库时,通常使用适配器,它将根据RowState添加/更新/删除行。 –