日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Datatable删除行的Delete和Remove方法介绍

發布時間:2025/3/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Datatable删除行的Delete和Remove方法介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在實際項目開發中,如果要刪除DataTable中的某一行,大約有以下幾種辦法:

使用DataTable.Rows.Remove(DataRow),或者DataTable.Rows.RemoveAt(index);可以直接刪除行

datatable.Rows.Delete()。Delete()之后需要datatable.AccepteChanges()方法確認完全刪除,因為Delete()只是將相應列的狀態標志為刪除,還可以通過datatable.RejectChanges()回滾,使該行取消刪除。
在刪除DataTable中的行的時候,每刪除一行,DataTable中所有行的索引都會發生改變。在循環刪除DataTable.Row的時候不能使用foreach。使用foreach進行循環的時候,是不允許Table有刪除和添加操作的。
如果是按某列為條件進行刪除,則每刪完一行,整個Table的index就會立即發生變化,等于Table已經變成了一個新的表。但是索引卻已經加1了。于是會造成第一列永遠匹配不到。因此,每刪除完一行,要跟著判斷第一行是否滿足刪除條件。
如果要刪除DataTable中的多行,應該采用倒序循環DataTable.Rows。因為正序刪除時索引會發生變化。程式發生異常,很難預料后果。

總結:

delete和remove

Delete的使用是 datatable.Rows.Delete();
Remove的使用是datatable.Rows.Remove(datatable.Rows);
這兩個的區別是,使用delete后,只是該行被標記為deleted,但是還存在,用Rows.Count來獲取行數時,還是刪除之前的行數.需要使用datatable.AcceptChanges()方法來提交修改.
而Remove方法則是直接刪除.
如果在for循環里刪除行的話,最好是使用delete方法,不然會出現count變化的情況.循環完后再使用AcceptChanges()方法提交修改,刪除掉標記為deleted的行。

原文地址:http://bbs.delit.cn/thread-446-1-1.html

轉載請注明出處:

撰寫人:度量科技http://www.delit.cn

轉載于:https://blog.51cto.com/delit/1721627

總結

以上是生活随笔為你收集整理的Datatable删除行的Delete和Remove方法介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。