Foxtable(狐表)用户栏目专家坐堂 → 继续讨教优化


  共有1430人关注过本帖树形打印复制链接

主题:继续讨教优化

帅哥哟,离线,有人找我吗?
hbhb
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
继续讨教优化  发帖心情 Post By:2017/4/6 11:51:00 [只看该作者]

色大王大师:见实例,请问如何提高效率?假如我要对表数据进行修改,只是一段就要10秒,那岂不是太慢了。有劳指点优化!

 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2017/4/6 11:52:00 [只看该作者]

实例
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目9.rar


 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2017/4/6 13:34:00 [只看该作者]

如果是这种速度,不跳楼才怪!

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/6 14:42:00 [只看该作者]

 没办法的,取值就至少需要10秒,赋值也需要时间

 

Dim st As Date = Date.Now

Dim ls As List(Of String) = DataTables("凭证").GetValues("凭证类别与编号")
Dim dic As new Dictionary(Of String, String)
For i As Integer = 0 To ls.count-1
    Dim str As String = DataTables("凭证").GetComboListString("科目编码","凭证类别与编号 = '" & ls(i) & "'")
    dic.add(ls(i), str)
Next
msgbox("耗时: " & (Date.Now - st).TotalSeconds & "秒")
For i As Integer = 0 To 3000
    Dim dr As DataRow = DataTables("凭证").DataRows(i)
    If dr.IsNull("借方金额") = False  Then
        dr("部门编码") = dic(dr("凭证类别与编号"))
    End If
Next
MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒")


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/6 14:44:00 [只看该作者]

 如果想继续优化,你可以自己去实现 GetComboListString 的功能。

 

 也就是,循环一次整个表,得到字典 dic ,具体自己去探索,类似 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=76545&replyID=529794&skin=1

 


 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2017/4/6 15:41:00 [只看该作者]

如果10万行数据的表,分析、规范填列这张表,不是要半天吗?为什么求一个集合这么吗?
SQL生成临时表呢?
数组呢?
怎么搞?
帮帮忙吧,色老兄!!!!!!!您肯定有办法。

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/6 15:54:00 [只看该作者]

 认认真真看4楼和5楼,自力更生。

 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2017/4/6 16:15:00 [只看该作者]

水平不够,跟不上呀。能看懂就不错了。已经提高几倍了,5楼的看不懂。

 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2017/4/6 16:29:00 [只看该作者]

大师:我搞不懂,如下代码,为何要运行很长时间,赋予集合的集合也慢,什么原因?用字典就快吗?为什么?
dim jhjh as new list(of list(of datarow)
dim dpzhs() as s tring 
Dim xhs As new List(of DataRow)
For Each dr As String In dpzhs
    xhs = DataTables("dtpzzb").Select("pzzb5 = '" & dr & "') 
jhjh.add(xhs)
Next



 回到顶部
帅哥哟,离线,有人找我吗?
hbhb
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5055 积分:13047 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2017/4/6 16:31:00 [只看该作者]

dim jhjh as new list(of list(of datarow)
dim dpzhs() as sTring = {“a”,“b”,“c”,“d”}      '---约100个
Dim xhs As new List(of DataRow)
For Each dr As String In dpzhs
    xhs = DataTables("dtpzzb").Select("pzzb5 = '" & dr & "') 
jhjh.add(xhs)
Next

 回到顶部
总数 14 1 2 下一页