在c#中 RemoveAt、 Remove、delete用法区别
2016-06-07 19:35
661 查看
有三种方法可以删除 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中所有行的索引都会发生改变。所以,需要逆序删除,并且每删除完一行,要跟着判断第一行是否满足删除条件。
如下代码所示:
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# kinect V2学习笔记(六)简单的2D换衣系统
- C# DataRow的扩展
- 委托的初步理解和用法
- 委托的初步理解和用法
- C# 操作pem 文件
- C# 特性
- C# 发送电子邮件
- 文本编辑器设计
- C#中的静态类
- C# - 数据备份-datatable数据写入到CSV文件中
- C#接口
- C#解决Linq OrderBy() 失效的小技巧
- C# 获取本机的串口号
- 啊哈哈哈哈 C#按日期生成文件夹,并在文件夹中写入文件
- C#学习笔记一
- C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
- C# Winform中的DataGridView中行定位-滚动条定位
- C#中yield用法
- C# new用法总结
- 浅析C#静态类,静态构造函数,静态变量