2017-10-05 258 views
0

我的形式:刪除和數據集的更新行(C#)

enter image description here

我想在數據集中刪除所選行。按鈕「刪除」有這個處理程序:

  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中刪除行。

回答

0

如果該網格綁定到DataTable,那麼刪除該表的DataRow,而不是網格行。類似這樣的:

int rowIdx = dataGridView1.CurrentCell.RowIndex; 
DataRowView drv = (DataRowView)dataGridView1.Rows[rowIdx].DataBoundItem; 
DataRow dr = drv.Row; 
dr.Delete(); 

這將刪除該行並更新網格。

+0

沒有解決問題,行只刪除datagridview – bsuart

+0

是的。 DataRow.Delete()將該行的RowState屬性設置爲Deleted。當你將DataSet/DataTable更新到數據庫時,通常使用適配器,它將根據RowState添加/更新/刪除行。 –