zoukankan      html  css  js  c++  java
  • C# 解决datatable想删除不想要的多行方法



    最近做东西,用到需要把一个datatbale的数据分为符合的和不符合的数据,但是一旦删除某一行索引值就会发生改变,如果用循环去remove的话就会出现删除

    数据有误了,改用datatable.Rows[i].Delete()可解决问题。下面为代码示例:

                            for (int i = 0; i <= ArrDeleteRowNo.Length - 1; i++)
                            {
                                int arraa = ArrDeleteRowNo.Length;//用数组记录要删除的位置行数
                                DT_Query.Rows[ArrDeleteRowNo[i]].Delete();//记录删除位置
    
                            }
                            DT_Query.AcceptChanges();//提交删除位置的改变

    注意:

    datatable.Rows[i].Delete()。Delete()之后需要datatable.AccepteChanges()方法确认完全删除,因为Delete()只是将相应列的状态标志为删除,还可以通过datatable.RejectChanges()回滚,使该行取消删除。


    另外在网上还看到以下的方法 第一个还没有试过,先收藏...

    在C#中,如果要删除DataTable中的某一行,大约有以下几种办法:

    1,使用DataTable.Rows.Remove(DataRow),或者DataTable.Rows.RemoveAt(index);可以直接删除行
    标注一下:DataTable.Rows.Remove(DataRow) 当改行被删除以后,整个表的索引将重建,如果使用循环作为dataRow的index访问表格 则会出现错误,比如你要删除的数据没有删除完;这是因为 当你删除了第八行,i++之后 访问第九行数据,可是之前为第九行的数据由于删除了一行数据而为而索引为8 则访问漏掉了一行数据。
    这里有我写的一个例子,大家可以看看:


    1. for (int i = 0; i < history.Rows.Count; i++)//注意这里一定要用Datatable的Rows.count 作为循环条件终止的值,而不能用 一个定值,因为每当删除一条数据,表的行数会发生变化,访问的下标则不会和未删除之前的表一样。  
    2. {  
    3.     if (!((lngX < 135.549864 && lngX > 73.27112) && (latY > 17.714548 && latY < 52.971885)))  
    4.     {  
    5.         history.Rows.Remove(history.Rows[i]);  
    6.         i--;//删除之后原来索引为i+1 处的行索引会因为删去一行而变为i ,i-- 确保此条数据不被漏掉  
    7.     }  
    8. }  



    2,datatable.Rows[i].Delete()。Delete()之后需要datatable.AccepteChanges()方法确认完全删除,因为Delete()只是将相应列的状态标志为删除,还可以通过datatable.RejectChanges()回滚,使该行取消删除。

  • 相关阅读:
    Attach Files to Objects 将文件附加到对象
    Provide Several View Variants for End-Users 为最终用户提供多个视图变体
    Audit Object Changes 审核对象更改
    Toggle the WinForms Ribbon Interface 切换 WinForms 功能区界面
    Change Style of Navigation Items 更改导航项的样式
    Apply Grouping to List View Data 将分组应用于列表视图数据
    Choose the WinForms UI Type 选择 WinForms UI 类型
    Filter List Views 筛选器列表视图
    Make a List View Editable 使列表视图可编辑
    Add a Preview to a List View将预览添加到列表视图
  • 原文地址:https://www.cnblogs.com/zorrobubble/p/3596910.html
Copyright © 2011-2022 走看看