以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 这段代码执行时非常慢,有没有优化些方法? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=121524) |
||||
-- 作者:hbfnmxb -- 发布时间:2018/7/8 21:00:00 -- 这段代码执行时非常慢,有没有优化些方法? 在蓝版主的帮助下,完成了一个小小高考志愿查询筛选程序。在这里选感谢蓝版。有一个按钮代码在程序执行时非常慢,蓝版及各位老师看一下,还有没有化的方法,让其在执行的快一些。选谢谢各位版主及老师了。 选上图,看一下执行时间: 代码如下: e.Form.Controls("Label1").Text = "正在调入各年度最低分平均分及排名,请稍后..." Application.DoEvents() Dim timestart,timeend As Date timestart=Date.now Dim dt1 As DataTable = DataTables("年度院校提档线") For Each ary As String() In dt1.GetValues("院校代码|文理分科|录取批次", "院校代码 is not null") Dim filter As String = "院校代码=\'" & ary(0) & "\' and 文理分科 = \'" & ary(1) & "\' and 录取批次 = \'" & ary(2) & "\'" Dim filter1 As String = filter & " And 录取年度 = \'2017\'" Dim filter2 As String = filter & " And 录取年度 = \'2016\'" Dim filter3 As String = filter & " And 录取年度 = \'2015\'" Dim fdr1 = dt1.find(filter1) If fdr1 IsNot Nothing Then dt1.ReplaceFor("乙年最低分", fdr1("最低分"), filter) dt1.ReplaceFor("乙年平均分", fdr1("平均分"), filter) dt1.ReplaceFor("乙年最低分排名", fdr1("最低分排名"), filter) dt1.ReplaceFor("乙年平均分排名", fdr1("平均分排名"), filter) End If Dim fdr2 = dt1.find(filter2) If fdr2 IsNot Nothing Then dt1.ReplaceFor("丙年最低分", fdr2("最低分"), filter) dt1.ReplaceFor("丙年平均分", fdr2("平均分"), filter) dt1.ReplaceFor("丙年最低分排名", fdr2("最低分排名"), filter) dt1.ReplaceFor("丙年平均分排名", fdr2("平均分排名"), filter) End If Dim fdr3 = dt1.find(filter3) If fdr3 IsNot Nothing Then dt1.ReplaceFor("丁年最低分", fdr3("最低分"), filter) dt1.ReplaceFor("丁年平均分", fdr3("平均分"), filter) dt1.ReplaceFor("丁年最低分排名", fdr3("最低分排名"), filter) dt1.ReplaceFor("丁年平均分排名", fdr3("平均分排名"), filter) End If Next e.Form.Controls("Label1").Text = "调入完毕." timeend=Date.now e.Form.Controls("Label1").text="耗时" & (timeend-timestart).TotalSeconds & "秒" Messagebox.Show("调入完毕!") |
||||
-- 作者:baicaocao -- 发布时间:2018/7/8 21:24:00 -- 这个三个find分开试试,就是三个循环语句并列,每年一个。看看执行速度是多少。。 另外如果可以的话,用sql中的存储语句试试。。应该能快不少。
|
||||
-- 作者:hbfnmxb -- 发布时间:2018/7/8 21:34:00 -- 原来是每年一个按钮,后来是合到一起的,每年一个的时候,也不是很快,因为要调试,所以没注意到这个细节,现在进一步 完善,所以才发现了这个问题,另外,老师说到的SQL中的存储语句是什么意思?怎么试?谢谢老师!
|
||||
-- 作者:hbfnmxb -- 发布时间:2018/7/9 8:48:00 -- 自己顶一下。 |
||||
-- 作者:有点甜 -- 发布时间:2018/7/9 8:56:00 -- 做一个执行慢的例子发上来测试。执行了多久?你想优化成多快? |
||||
-- 作者:hbfnmxb -- 发布时间:2018/7/9 9:42:00 -- 其它按钮几秒钟,这个432多秒,7分多鈡,我的意思如果有可以优化一下,快一点,如果没有这样就很好。非常感谢蓝版!!谢谢 |
||||
-- 作者:有点甜 -- 发布时间:2018/7/9 14:02:00 -- 以下是引用hbfnmxb在2018/7/9 9:42:00的发言:
其它按钮几秒钟,这个432多秒,7分多鈡,我的意思如果有可以优化一下,快一点,如果没有这样就很好。非常感谢蓝版!!谢谢
做个例子发上来测试。不可能耗时这么久的。 |
||||
-- 作者:hbfnmxb -- 发布时间:2020/12/25 13:36:00 -- 老问题,如果一楼的公式,换成Select函数,可以吗?公式怎么写呢?谢谢老师! |
||||
-- 作者:有点蓝 -- 发布时间:2020/12/25 14:29:00 -- 请上传实例测试 |
||||
-- 作者:hbfnmxb -- 发布时间:2020/12/25 15:09:00 -- 因论坛附件限制,固更改了文件扩展名,老师下载附件后,直接去掉rar的扩展名,即可解压缩。谢谢老师,麻烦了!
|