以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教窗口中临时表清除行的两种方法有何区别  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=185595)

--  作者:采菊东篱下
--  发布时间:2023/3/4 8:26:00
--  请教窗口中临时表清除行的两种方法有何区别

图片点击可在新窗口打开查看此主题相关图片如下:微信图片_20230304082110.png
图片点击可在新窗口打开查看

第一种方法:
tbl.Table.DataTable.DataRows.Clear()
第二种方法:
For i As Integer = tbl.Table.Rows.count - 1 To 0 Step - 1
    tbl.Table.Rows(i).Delete
Next
这两种方法都是清除行,为什么用第一种方法不行,用第两种行呢?请教它们各自应在什么情况下运用。
[此贴子已经被作者于2023/3/4 8:26:57编辑过]

--  作者:有点蓝
--  发布时间:2023/3/4 9:09:00
--  
Clear方法会直接从后台清除所有行,并即刻生效,且不能撤销,所以一定要慎重使用。

我测试第一种方法没有问题,请上传实例说明

--  作者:采菊东篱下
--  发布时间:2023/3/4 10:07:00
--  
用第一种方法必须重新加载,
tbl.Table.DataTable.DataRows.Clear()
tbl.Table.DataTable.Load()
否则select * fr om {对阵明细汇总}where [_Identify] Is Null生成的表依然显示数据!以前做的收款凭证也是如此,
For i As Integer = tbl.Table.Rows.count - 1 To 0 Step - 1
    tbl.Table.Rows(i).Delete
Next
删除的是Table上的数据