码迷,mamicode.com
首页 > 其他好文 > 详细

DataTable 行删除

时间:2014-12-24 16:16:41      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:

今天在阅读一个项目中的代码时,发现删除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;

DataTable 行删除

标签:

原文地址:http://www.cnblogs.com/xiashengwang/p/4182494.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!