您的位置:程序门 -> .net技术 -> vb.net



为什么这段代码,会消耗我大量时间(5分钟以上)??


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


为什么这段代码,会消耗我大量时间(5分钟以上)??[已结贴,结贴人:tangweikai]
发表于:2007-02-03 17:17:37 楼主
为什么这段代码,会消耗我大量时间(5分钟以上)??处量的记录总共约15000条,access   数据库,这些表都已建立自增量的字段主键。


'开始导入数据

                                        copyrowitem   =   datasetinput.tables( "code ").rows
                                        for   nn   =   0   to   copyrowitem.count   -   1
                                                copyrow   =   datasetbbzt.tables( "rep_code ").newrow()
                                                copyrow( "bytyear ")   =   inputyear
                                                copyrow( "strcodeid ")   =   copyrowitem(nn).item( "strcodeid ")
                                                copyrow( "strcodename ")   =   copyrowitem(nn).item( "strcodename ")
                                                copyrow( "blndepartment ")   =   copyrowitem(nn).item( "blndepartment ")
                                                copyrow( "blnend ")   =   copyrowitem(nn).item( "blnend ")
                                                copyrow( "bytgrade ")   =   copyrowitem(nn).item( "bytgrade ")
                                                copyrow( "bytclass ")   =   copyrowitem(nn).item( "bytclass ")
                                                copyrow( "blnd_c ")   =   copyrowitem(nn).item( "blnd_c ")
                                                copyrow( "strmeasure ")   =   copyrowitem(nn).item( "strmeasure ")
                                                copyrow( "blnchange ")   =   copyrowitem(nn).item( "blnchange ")
                                                copyrow( "blnchild ")   =   copyrowitem(nn).item( "blnchild ")
                                                copyrow( "blnzero ")   =   copyrowitem(nn).item( "blnzero ")
                                                copyrow( "sngdepre ")   =   copyrowitem(nn).item( "sngdepre ")
                                                copyrow( "mnremark ")   =   copyrowitem(nn).item( "mnremark ")
                                                datasetbbzt.tables( "rep_code ").rows.add(copyrow)
                                        next


                                        copyrowitem   =   datasetinput.tables( "gledger ").rows
                                        for   nn   =   0   to   copyrowitem.count   -   1
                                                copyrow   =   datasetbbzt.tables( "rep_gledger ").newrow()
                                                copyrow( "bytyear ")   =   inputyear
                                                copyrow( "bytperiod ")   =   copyrowitem(nn).item( "bytperiod ")
                                                copyrow( "strcodeid ")   =   copyrowitem(nn).item( "strcodeid ")
                                                copyrow( "strbegindirection ")   =   copyrowitem(nn).item( "strbegindirection ")
                                                copyrow( "dblbeginbalance ")   =   copyrowitem(nn).item( "dblbeginbalance ")
                                                copyrow( "dbldebit ")   =   copyrowitem(nn).item( "dbldebit ")
                                                copyrow( "dblcredit ")   =   copyrowitem(nn).item( "dblcredit ")
                                                copyrow( "strenddirection ")   =   copyrowitem(nn).item( "strenddirection ")
                                                copyrow( "dblendbalance ")   =   copyrowitem(nn).item( "dblendbalance ")
                                                copyrow( "dblbeginbalancecount ")   =   copyrowitem(nn).item( "dblbeginbalancecount ")
                                                copyrow( "dbldebitcount ")   =   copyrowitem(nn).item( "dbldebitcount ")
                                                copyrow( "dblcreditcount ")   =   copyrowitem(nn).item( "dblcreditcount ")
                                                copyrow( "dblendbalancecount ")   =   copyrowitem(nn).item( "dblendbalancecount ")
                                                datasetbbzt.tables( "rep_gledger ").rows.add(copyrow)
                                        next

                                        waitclear(me)
'保存数据
                                        waitwindow(me,   "正在保存财务数据,请稍等... ")
                                        try
                                                oledbdataadapterrep_code.update(datasetbbzt,   "rep_code ")
                                                oledbdataadapterrep_gledger.update(datasetbbzt,   "rep_gledger ")
                                              msgbox( "已正确导入帐套资料! ",   msgboxstyle.information,   "提示信息 ")
                                        catch   ex   as   exception
                                                msgbox(ex.message,   msgboxstyle.information,   "导入失败 ")
                                        finally
                                        end   try
发表于:2007-02-05 15:31:561楼 得分:5
这种方法保存数据一般都比较慢
你的情况我也遇到过,改成用普通的insert来保存速度就快很多了
还有,你也可以把数据读到本机上再进行处理,减少数据在网络之间的传输时间
发表于:2007-02-06 16:55:582楼 得分:0
ok,我试试看。。
发表于:2007-02-21 13:06:433楼 得分:0
该回复于2007-12-21 19:39:31被管理员或版主删除
发表于:2007-03-17 14:51:504楼 得分:0
全部改成   command   控制的   insert   语句,省了让   edbdataadapterrep_code   来执行update,速度快了不少。。


快速检索

最新资讯
热门点击