Foxtable(狐表)用户栏目专家坐堂 → 代码耗时问题请教老师修改


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

主题:代码耗时问题请教老师修改

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2013/5/3 13:18:00 [显示全部帖子]

你把Dim cmd As New SQLCommand放入For Next中循环,不足10秒算少了,如Table中有几千行,岂不是要加载几千次!


Dim dr as datarow

Dim t1 As Table = Tables("提取客户资料_Table1")


t1.redraw = 0
t1.DataTable.SysStyles("EmptyArea").BackColor = Color.White
t1.DataTable.Fill("Select [客户姓名],[省份],[地区],[联系电话] From {客户资料} ","数据库", True)
t1.SetColVisibleWidth("客户姓名|100|省份|50|地区|100|联系电话|200")

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT * From {客户短信电话}"
dt = cmd.ExecuteReader


For Each r As Row In t1.rows
    dr =dt1.find( "
[客户姓名] = '" & r("客户姓名") & "'")
    If dr isnot nothing Then
        r.Checked = True
    End If
Next

t1.redraw = 1



[此贴子已经被作者于2013-5-3 13:23:57编辑过]

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


加好友 发短信
等级:超级版主 帖子:521 积分:4910 威望:0 精华:7 注册:2008/9/2 22:22:00
  发帖心情 Post By:2013/5/3 13:36:00 [显示全部帖子]

反正是查询表,这样更好:


Dim SQL As string

Dim t1 As Table = Tables("提取客户资料_Table1")


SQL = "Select a.客户姓名,a.省份,a.地区,a.联系电话,b.客户短信电话  From {客户资料} a "

SQL+ = "INNER JOIN {客户短信电话} b ON a.客户姓名 = b.客户姓名"

t1.redraw = 0
t1.DataTable.SysStyles("EmptyArea").BackColor = Color.White
t1.Fill(SQL,"数据库", True)
t1.SetColVisibleWidth("客户姓名|100|省份|50|地区|100|联系电话|200")


Dim drs As List(of Dadtarow) = t1.DataTable.Select("客户短信电话 > ''")

For Each dr As DaRow In drs

      t1.Rows(t1.FindRow(dr)).Checked = -1

Next

t1.redraw = 1

[此贴子已经被作者于2013-5-3 14:47:38编辑过]

 回到顶部