当前位置:  开发笔记 > 数据库 > 正文

删除数据表中的所有行

如何解决《删除数据表中的所有行》经验,为你挑选了1个好方法。

我需要删除数据表(ADO.net)中的所有行.我不想在这里使用Foreach.

在一个单一的如何删除所有行.

然后我需要将数据表更新到数据库.

注意:我已经尝试过dataset.tables [0] .rows.clear和dataset.clear,但两者都无效

另外我不想使用sql删除查询.

如果你能提供答案,请发布除此之外的帖子.



1> Clyde..:

'foreach'也不是这个问题的简单答案 - 你遇到的问题是枚举器不再对更改的集合有效.

这里的麻烦是,对于DataRowState.Added与Unchanged或Modified中的行,Delete()行为是不同的.如果你删除()一个添加的行,它只是从集合中删除它,因为无论如何数据存储大概都不会知道它.对未更改的行或已修改的行上的Delete()只是将其标记为已删除,而其他人已指示.

所以我最终实现了这样的扩展方法来处理删除所有行.如果有人有任何更好的解决方案,这将是伟大的.

    public static void DeleteAllRows(this DataTable table)
    {
        int idx = 0;
        while (idx < table.Rows.Count)
        {
            int curCount = table.Rows.Count;
            table.Rows[idx].Delete();
            if (curCount == table.Rows.Count) idx++;
        }
    }

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有