今天在阅读一个项目中的代码时,发现删除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 行删除的更多相关文章

  1. jquery datatable 多行(单行)选择(select),行获取/行删除

    jquery datatable 多行(单行)选择(select),行获取/行删除 代码展示 // 示例数据源 var dataSet = [ ['Tasman','Internet Explorer ...

  2. VI中的多行删除与复制

    VI中的多行删除与复制 法一: 单行删除,:(待删除行)d 多行删除 ,:,10d 法二: 光标所在行,dd 光标所在行以下的N行,Ndd 方法1: 光标放到第6行, 输入:2yy 光标放到第9行, ...

  3. DataTable行转列

    /// <summary> /// DataTable行转列 /// </summary> /// <param name="dtable">需 ...

  4. C#中DataTable行转列示例

    将下面表(1)格式的数据转换为表(2)格式的数据.很明显,这是一个行转列的要求,本想在数据库中行转列,因为在数据库中行转列是比较简单的,方法可以参考本站SQLServer中(行列转换)行转列及列转行且 ...

  5. 用bat批处理程序通过DOS命令行删除所有的空文件夹

    用过gothub或者码云的同学都知道,不包含任何文件的空文件夹上传提交时不被允许的.当然你可以在空文件下创建.keep文件(或.gitkeep文件),然后就可以上传了. 但是如果空文件夹比较多,并且我 ...

  6. vim常用命令之多行注释和多行删除

    vim中多行注释和多行删除命令,这些命令也是经常用到的一些小技巧,可以大大提高工作效率.   1.多行注释:   1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式;   ...

  7. c# DataTable行转列

    /// <summary> /// datatable行转列 /// </summary> /// <param name="dtSrc">来源 ...

  8. vim中多行注释和多行删除命令

      1.多行注释:   1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式;   2. 在行首使用上下键选择需要注释的多行;   3. 按下键盘(大写)“I”键,进入插入 ...

  9. VI中的多行删除与复制(转)

    VI中的多行删除与复制 法一: 单行删除,:(待删除行)d 多行删除 ,:,10d 法二: 光标所在行,dd 光标所在行以下的N行,Ndd 方法1: 光标放到第6行, 输入:2yy 光标放到第9行, ...

随机推荐

  1. UnicodeDecodeError: 'utf-8' codec can't decode byte

    for line in open('u.item'): #read each line whenever I run this code it gives the following error: U ...

  2. Linux系统和工具集

    Linux系统和工具集 阿里源 http://mirrors.aliyun.com/ http://centos.ustc.edu.cn/ 第三方包管理器 不同的发行版使用不同的软件包管理器,Cent ...

  3. unity, 删除animationClip中的position曲线

    删除clip中所有的position曲线: using UnityEngine; using System.Collections; using UnityEditor; public class r ...

  4. Mac笔记本安装mysql

    在浏览器当中输入地址:dev.mysql.com/downloads/mysql/,如下图所示:   进入以下界面,直接点击下面位置 ,选择跳过登录,点过这后直接下载,如下图所示:   下载完成后, ...

  5. Spring Security教程(一):初识Spring Security

    一.概要 Spring Security,这是一种基于 Spring AOP 和 Servlet 过滤器的安全框架.它提供全面的安全性解决方案,同时在 Web 请求级和方法调用级处理身份确认和授权.以 ...

  6. java、oracle对CLOB处理

    oracle CLOB字段转换位VARCHAR 1.实际上处理CLOB字段的时候,直接TO_CHAR,当长度超过4000的时候,会报错,提示列被截取: CLOB转varchar2:select to_ ...

  7. [svc][jk]磁盘的iops和吞吐量(Throught)指标

    参考 另参考 IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一.IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处 ...

  8. 如何在 Linux 上设置密码策略

    https://linux.cn/article-2518-1.html 用户帐号管理是系统管理员最重要的工作之一.而密码安全是系统安全中最受关注的一块.在本教程中,我将为大家介绍如何在 Linux ...

  9. select元素添加option的add()方法 | try{}catch{}

    1.javascript中的select元素添加option使用add()方法 select的add方法,第一个参数是需要被添加的option元素,第二个参数决定了被添加的位置 普通浏览器中,第二个参 ...

  10. 每日英语:The Benefits of a Better Men's T-Shirt

    "I WEAR A T-shirt and jeans every single day," said Erik Schnakenberg, 30, co-founder of t ...