在c#中 RemoveAt、 Remove、delete用法区别
有三种方法可以删除 DataTable 中的 DataRow:
Delete 方法和 Remove 方法和 RemoveAt 方法
其区别是:
- Delete 方法实际上不是从 DataTable 中删除掉一行,而是将其标志为删除,仅仅是做个记号,
- Remove 方法则是真正的从 DataRow 中删除一行,
- RemoveAt 方法是根据行的索引来删除。
Delete 的使用是 : Datatable.Rows[i].Delete();
注意: Delete() 之后需要 datatable.AccepteChanges() 方法确认完全删除,因为 Delete() 只是将其标志为删除,也可以用 datatable.RejectChanges() 回滚,使该行取消删除。
Remove 的使用是: Datatable.Rows.Remove(datatable.Rows[i]);
RemoveAt 的使用是: DataTable.Rows.RemoveAt(index);
在使用 for 循环删除 DataTable 中行的时候,每删除一行,DataTable中所有行的索引都会发生改变。所以,需要逆序删除,并且每删除完一行,要跟着判断第一行是否满足删除条件。
如下代码所示:
for (int i = dgv_datalist.Rows.Count - 1; i >= 0; i--)
{
//删除 i 行
dgv_datalist.Rows.RemoveAt(i);
//更新窗体dgv_datalist
dgv_datalist.Commit();
}
在c#中 RemoveAt、 Remove、delete用法区别的更多相关文章
- 数据库中truncate与delete的区别与联系
昨天被问到truncate与delete的区别,truncate没用过,回去百度了一下,才知道还有这个一种语句. truncate table命令将快速删除数据表中的所有记录(保留数据表结构).这种快 ...
- css中import与link用法区别
方式:引入CSS的方法有两种,一种是@import,一种是link @import url('地址');//注意,这种方式可以放在页面也可以放在css文件中<link href="地址 ...
- C++中free()与delete的区别
1.new/delete是C++的操作符,而malloc/free是C中的函数. 2.new做两件事,一是分配内存,二是调用类的构造函数:同样,delete会调用类的析构函数和释放内存.而malloc ...
- PHP和Java中foreach循环的用法区别
1.foreach语句介绍: ①PHP: foreach 语法结构提供了遍历数组的简单方式.foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息. ...
- js中typeof与instanceof用法区别
今天写JS代码,遇到动态生成多个名称相同的input复选按钮 需要判断其是否是数组,用到了if (typeof(document.MapCheckMgr.checkid)!="undefin ...
- JS中typeof和instanceof用法区别
typeof和instanceof都可以用来判断变量 1.typeof用以获取一个变量或者表达式的类型,typeof一般只能返回如下几个结果: number,boolean,string,functi ...
- sklearn中predict()与predict_proba()用法区别
predict是训练后返回预测结果,是标签值. predict_proba返回的是一个 n 行 k 列的数组, 第 i 行 第 j 列上的数值是模型预测 第 i 个预测样本为某个标签的概率,并且每一行 ...
- C中的malloc/free与C++中的new/delete的用法与区别
1.先介绍malloc/free的用法: 原型函数: void *malloc(long NumBytes); 该函数分配了NumBytes个字节的内容,分配的空间是堆空间 malloc()根据用户所 ...
- Linux中yum和apt-get用法及区别
Linux中yum和apt-get用法及区别 一般来说著名的linux系统基本上分两大类: 1.RedHat系列:Redhat.Centos.Fedora等 2.Debian系列:Debi ...
随机推荐
- android studio 编辑markdown文件
作为开发人员,对markdown应该比较熟悉,我们在Android开始中,可以使用studio引入Markdown Navigator插件,进行编辑. 搜索 Markdown Navigator 安装 ...
- lumion实例渲染6.2
放置一些树 打开室外材质库,选择一个·别墅 放车 “景观”“描绘系统”笔刷调大刷出地面, 人群安置一些墙 改变方向,增大数量,墙就连在一起, 放一些树篱在墙上. 拍照模式添加特效,太阳 添加特效,天气 ...
- VS2017开发.net core 时默认发布路径文件夹多个BPC
新安装的VS2017,编译后进行发布,结果在bin文件夹下多了个BPC文件夹,很是费解,查了资料才知道是VS2017默认设置了环境变量.在此记录下,如果不需要默认路径可修改环境变量,具体操作如下: 我 ...
- test--1
void(document.body.innerHTML.replace(/"return DeletePost\((\d+),([^"]+)\)"/g, functio ...
- js dictionary
转载的 1.dictionary例子 <script type="text/javascript" language="javascript"> v ...
- python全栈开发笔记---------函数
一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量,把y称为因 ...
- c#连接db2数据库
.net项目要连接db2数据库,是要安装客户端的,否则是连接不上的: 若出现“未在本地计算机上注册‘ibmdadb2’提供程序” 解决办法: 1.先找到安装后的ibmdadb2.dll文件复制到c:\ ...
- 理解什么是适配器(adapter)和接口(interface)
● 适配器(adapter) In computing, adapter is a hardware device or software component that converts transm ...
- erlang并发编程(二)
补充-------erlang并发编程 Pid =spawn(fun()-> do_sth() end). 进程监视: Ref = monitor(process, Pid)靠抛异常来终结进程 ...
- 使用lamdba函数对list排序
lamdba好处:精简代码,省去了定义函数.