如何刪除datatable中的一行資料

2022-07-31 08:51:19 字數 929 閱讀 9568

在c#中,如果要刪除datatable中的某一行,大約有以下幾種辦法:

1,使用datatable.rows.remove(datarow),或者datatable.rows.removeat(index);可以直接刪除行

2,datatable.rows[i].delete()。delete()之後需要datatable.acceptechanges()方法確認完全刪除,因為delete()只是將相應列的狀態標誌為刪除,還可以通過datatable.rejectchanges()回滾,使該行取消刪除。

只是delete掉的效果如下:

3、在刪除datatable中的行的時候,每刪除一行,datatable中所有行的索引都會發生改變。在迴圈刪除datatable.row的時候不能使用foreach。使用foreach進行迴圈的時候,是不允許table有刪除和新增操作的。

如果要刪除datatable中的多行,應該採用倒序迴圈datatable.rows。因為正序刪除時索引會發生變化。程式發生異常,很難預料後果。

for (int i = dt.rows.count - 1; i >= 0; i--)

總結: 

delete和remove

delete的使用是 datatable.rows[i].delete();

remove的使用是datatable.rows.remove(datatable.rows[i]);

這兩個的區別是,使用delete後,只是該行被標記為deleted,但是還存在,用rows.count來獲取行數時,還是刪除之前的行數.需要使用datatable.acceptchanges()方法來提交修改.

而remove方法則是直接刪除.

如果在for迴圈裡刪除行的話,最好是使用delete方法,不然會出現count變化的情況.迴圈完後再使用acceptchanges()方法提交修改,刪除掉標記為deleted的行 

刪除DataTable中的數行?

在c 中,如果要刪除datatable中的某一行,大約有以下幾種辦法 1。使用datatable.rows.remove datarow 或者datatable.rows.removeat index 可以直接刪除行 2。datatable.rows i delete delete 之後需要 dat...

刪除datatable的行

delete 之後需要datatable.acceptechanges 方法確認完全刪除,因為delete 只是將相應列的狀態標誌為刪除,還可以通過datatable.rejectchanges 回滾,使該行取消刪除。所以如果要徹底刪除datarow,需要delete 和acceptechanges...

DataTable刪除多行

採用datatable.rows i delete 刪除行後再訪問該錶時出現出現 不能通過已刪除的行訪問該行的資訊 的錯誤。原因如下 delete 之後需要datatable.acceptechanges 方法確認完全刪除,因為delete 只是將相應列的狀態標誌為刪除,還可以通過datatable...