DataTable 行刪除


今天在閱讀一個項目中的代碼時,發現刪除DataTable的數據時用的dataTable.Clear(); 由於以前自己習慣都是用dataTable.Rows.Clear();因此突然感覺到很茫然,難道這兩者有啥不一樣?於是一陣百度,Bing搜索,在加上Reflector的幫助,結論如下:

1,dataTable.Clear()和dataTable.Rows.Clear() 都是刪除全部的表數據,但不會刪除表結構(列信息 ),使用時不必做區分,任選其一都可以。

2,DataTable.Reset方法。將全部數據和表結構(列信息)都刪除。

3,用DataRow.Delete()方法刪除行后,DataTable的行數不會變,在foreach語句中仍然可以遍歷到刪除的行,但是不能訪問行中的值,   會報System.Data.DeletedRowInaccessibleException的異常。

4,DataTable.GetChanges() 方法也可以取到刪除后的行,但是也不能訪問行中的值,會報異常。

5,DataTable沒有顯示實現IDisposable接口,對dataTable.Dispose() 的調用實際上是調用的DataTable的一個父類MarshalByValueComponent的 Dispose() 方法,由於這個原因,Dispose() 方法不會清除DataTable的行數據。因此,如果要完全銷毀一個DataTable,可以這樣寫代碼:

dataTable.Clear();
dataTable.Dispose();
dataTable = null;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM