以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [原创] 一个小的教训! (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=940) |
-- 作者:wcs -- 发布时间:2008/10/21 22:11:00 -- [原创] 一个小的教训! 本人用这样的语句试图删除30000多行数据: dim zhs as integer zhs = DataTables("订单").DataRows.Count For i As integer = 0 To zhs-1 DataTables ("订单").DataRows.Delete(i) Next 结果我的两核本本CPU性能达到80%以上,持续很时间也完成不了,只有强制停止了。 仔细想想,帮助中有一个StopRedraw 可以停止绘制表 可能运用这个方法可以速度快一点吧。 不知各位大侠没有更快的方法,删除表中的所有数据? [此贴子已经被作者于2008-10-21 22:32:43编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2008/10/21 22:13:00 -- DataTables ("订单").DataRows.Clear() |
-- 作者:wcs -- 发布时间:2008/10/21 22:34:00 -- 哈哈,我才试了试,这个要快一点的。不过还是没有达到我的快速要求。 DeleteFor(Filter) Filter: 指定删除条件。 例如删除订单表中2007年2月1日以前的行,代码为: [此贴子已经被作者于2008-10-21 22:34:16编辑过]
|
-- 作者:wcs -- 发布时间:2008/10/21 22:39:00 -- 哈哈,就是要这个效果,一瞬间,不分青红皂白,统统删除!老大的建议好。30000条记录,一秒搞定了。 实际上我是想更新一个外部数据库里的数据,使之与财务数据库基本同步。 没办法,狐表无法实施外部数据表的“新增记录、修改记录”事件的编程,只能大批处理了。 |
-- 作者:狐狸爸爸 -- 发布时间:2008/10/22 8:28:00 -- 需要注意的是,Clear直接从后台删除数据,没有办法反悔的。 如果删除大量数据,请压缩项目。 |