Foxtable(狐表)用户栏目专家坐堂 → 跨表取值(已解决)


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

主题:跨表取值(已解决)

美女呀,离线,留言给我吧!
caiyt0
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:63 积分:488 威望:0 精华:0 注册:2013/4/9 14:47:00
跨表取值(已解决)  发帖心情 Post By:2013/4/19 8:19:00 [只看该作者]

当表A[jth]=表B[jth]时,表A的[jx]=表B的[jtlx],请问代码怎写
[此贴子已经被作者于2013-4-22 15:06:59编辑过]

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/4/19 8:38:00 [只看该作者]

表A和表B是什么关联? 表A的[jth]=表B[jth]时?  等于表B的哪一行啊? 在所有行中只要找到类似的就匹配吗?

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/4/19 8:39:00 [只看该作者]

For i1 As Integer = 0 To Tables("表A").Rows.Count - 1
    For i2 As Integer = 0 To Tables("表B").Rows.Count - 1
        If Tables("表A").Rows(i1)("jth") = Tables("表B").Rows(i2)("jth") Then
            Tables("表A").Rows(i1)("jx")  = Tables("表B").Rows(i2)("jtlx")
        Else
            Continue For
        End If
    Next
Next

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/4/19 8:43:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/4/19 8:53:00 [只看该作者]

以下是引用muhua在2013-4-19 8:43:00的发言:
If e.DataCol.Name = "第一列"
    If e.NewValue > "" Then
        Dim dr As DataRow = DataTables("表B").Find("第一列='" & e.DataRow("第一列") & "'")
        If dr Is Nothing Then
            e.DataRow("第二列") = Nothing
        Else
            e.DataRow("第二列") = dr("第二列")
        End If
    Else
        e.DataRow("第二列") = dr("第二列")
    End If   
End If
测试过find的效率,似乎很低,都不敢用了。
 


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/4/19 8:56:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/4/19 9:14:00 [只看该作者]

测试了三种查找最大号的方法。

第一个最快:

Dim s As String = DataTables("数据字典").Compute("Max(编号)")
DataTables("数据字典").LoadFilter = "编号 = '" & s & "'"
DataTables("数据字典").Load()

第二个似乎稍慢,不明显:

DataTables("数据字典").LoadOrder = "编号 Desc"
DataTables("数据字典").LoadTop = "1"
DataTables("数据字典").Load()

第三个慢的让人烦躁了:

Dim dr As DataRow = DataTables("数据字典").Find("编号 = max(编号)")
DataTables("数据字典").LoadFilter = "编号 = '" & dr("编号") & "'"
DataTables("数据字典").Load()

还是最后一个效率最高:
Dim ld As Long
Dim cmd As New SQLCommand
cmd.CommandText = "Select Max(编号) From {订单}"
ld = cmd.ExecuteScalar()


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/4/19 9:19:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/4/19 9:20:00 [只看该作者]

以下是引用muhua在2013-4-19 9:19:00的发言:

我也测试下。

数据量越大越明显。


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


加好友 发短信
等级:小狐 帖子:302 积分:1860 威望:0 精华:0 注册:2012/4/27 11:34:00
  发帖心情 Post By:2013/4/19 9:31:00 [只看该作者]

以下是引用lsy在2013-4-19 9:14:00的发言:

测试了三种查找最大号的方法。

第一个最快:

Dim s As String = DataTables("数据字典").Compute("Max(编号)")
DataTables("数据字典").LoadFilter = "编号 = '" & s & "'"
DataTables("数据字典").Load()

第二个似乎稍慢,不明显:

DataTables("数据字典").LoadOrder = "编号 Desc"
DataTables("数据字典").LoadTop = "1"
DataTables("数据字典").Load()

第三个慢的让人烦躁了:

Dim dr As DataRow = DataTables("数据字典").Find("编号 = max(编号)")
DataTables("数据字典").LoadFilter = "编号 = '" & dr("编号") & "'"
DataTables("数据字典").Load()

还是最后一个效率最高:
Dim ld As Long
Dim cmd As New SQLCommand
cmd.CommandText = "Select Max(编号) From {订单}"
ld = cmd.ExecuteScalar()


嵌套MAX測試對FIND不公平吧:

應該這樣試試

Dim s As String = DataTables("数据字典").Compute("Max(编号)")

Dim dr As DataRow = DataTables("数据字典").Find("编号 = '" &  s  & "'")
DataTables("数据字典").LoadFilter = "
[_Identify] = " &  dr("_Identify") 

DataTables("数据字典").Load()



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