Datatable删除行的Delete和Remove方法的区别介绍
来源:互联网 发布:webstorm mac 破解版 编辑:程序博客网 时间:2024/05/22 09:23
1、在C#中,如果要删除DataTable中的某一行,大约有以下几种办法:
•使用DataTable.Rows.Remove(DataRow),或者DataTable.Rows.RemoveAt(index);可以直接删除行
•datatable.Rows[i].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[i].Delete();
•Remove的使用是datatable.Rows.Remove(datatable.Rows[i]);
•这两个的区别是,使用delete后,只是该行被标记为deleted,但是还存在,用Rows.Count来获取行数时,还是删除之前的行数.需要使用datatable.AcceptChanges()方法来提交修改.
•而Remove方法则是直接删除.
•如果在for循环里删除行的话,最好是使用delete方法,不然会出现count变化的情况.循环完后再使用AcceptChanges()方法提交修改,删除掉标记为deleted的行
转自: * 文章包含被禁用的url,无法保存和发布。
- Datatable删除行的Delete和Remove方法介绍
- Datatable删除行的Delete和Remove方法的区别介绍
- Datatable删除行的Delete和Remove方法的区别介绍
- Datatable删除行的Delete和Remove方法
- Datatable删除行的Delete和Remove方法
- Datatable删除行的Delete和Remove方法
- Datatable删除行的Delete和Remove方法
- datatable 中Remove和delete的区别
- Datatable删除行的Delete和Remove…
- 对DataTable执行delete和remove的区别
- DataRow的Delete,Remove,RemoveAt方法的用法和区别
- DataRow的Delete,Remove,RemoveAt方法的用法和区别。
- mysql 用drop和delete方法删除用户的区别
- jQuery中删除方法empty(),remove()和detach()的区别
- truncate和 delete删除数据的区别
- Table.Rows.Remove(dr)和Table.Delete()的区别
- Table.Rows.Remove(dr)和Table.Delete()的区别
- Table.Rows.Remove(dr)和Table.Delete()的区别
- VS2010编译Mongo C++ Driver
- Android开发中会出现R文件消失的原因。
- ubuntu64 安装jdk1.6
- linux下查看和添加PATH环境变量
- Junit测试多线程的问题
- Datatable删除行的Delete和Remove方法的区别介绍
- ffmpeg链接错误:关于C++ extern "C"
- 印制导线的宽度及间距是多少 转
- FormsAuthenticationTicket对象
- 11g 单实例重新安装GRID报ASM已经存在
- 最大团问题-分支限界算法
- Filter
- MPMoviePlayerViewController 播放完不退出
- junit作为多线程环境的启动入口