• 删除行对DataTable执行delete和remove的区别


    PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘。目前又不当COO,还是得用心记代码哦!

        Delete的应用是 datatable.Rows[i].Delete();

        Remove的应用是datatable.Rows.Remove(datatable.Rows[i]);

        这两个的区别是

        应用delete后,只是该行被标记为deleted,但是还存在,用Rows.Count来获得行数时,还是删除之前的行数.须要应用datatable.AcceptChanges()方法来交提修改.

        而Remove方法则是直接删除. 

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

        1,应用DataTable.Rows.Remove(DataRow),或者DataTable.Rows.RemoveAt(index);可以直接删除行

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

        每日一道理
    聪明人学习,像搏击长空的雄鹰,仰视一望无际的大地;愚笨的人学习,漫无目的,犹如乱飞乱撞的无头飞蛾;刻苦的人学习,像弯弯的河流,虽有曲折,但终会流入大海;懒惰的人学习,像水中的木头,阻力越大倒退得越快。

        在删除DataTable中的行的时候,每删除一行,DataTable中所有行的引索会都生发变改。在循环删除DataTable.Row的时候不能应用foreach。应用foreach行进循环的时候,是不允许Table有删除和添加作操的。

        如果是按某列为条件行进删除,则每删完一行,全部Table的index就会即立生发变化,于等Table已变成了一个新的表。但是引索却已加1了。于是会形成第一列远永匹配不到。因此,每删除完一行,要着跟判断第一行是不是足满删除条件。

        如果要删除DataTable中的多行,应当采取倒序循环DataTable.Rows。因为正序删除时引索会生发变化。程式生发常异,很难预感效果。

        for (int i = dt.Rows.Count - 1; i >= 0; i--)
    {
              dt.Rows.RemoveAt(i);
     }

    文章结束给大家分享下程序员的一些笑话语录: 程序员的愿望
      有一天一个程序员见到了上帝.上帝: 小伙子,我可以满足你一个愿望.程序员: 我希望中国国家队能再次打进世界杯.
      上帝: 这个啊!这个不好办啊,你还说下一个吧!
      程序员: 那好!我的下一个愿望是每天都能休息6个小时以上.
      上帝: 还是让中国国家打进世界杯.

  • 相关阅读:
    JOIN条件限制对结果记录的影响
    什么是linux?
    什么是操作系统?
    Internship settled!
    Python dict 调试技巧 —— 利用YAML存储dict内容
    c++ 异常处理
    C#可空类型
    C# 异常处理
    C#值类型与引用类型
    C# 类类型
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3050631.html
Copyright © 2020-2023  润新知