Foxtable(狐表)用户栏目专家坐堂 → 求助可不可以从两个表中取列表数据?


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

主题:求助可不可以从两个表中取列表数据?

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


加好友 发短信
等级:一尾狐 帖子:418 积分:3209 威望:0 精华:0 注册:2010/2/24 13:33:00
求助可不可以从两个表中取列表数据?  发帖心情 Post By:2011/12/15 16:56:00 [只看该作者]

各位老师:

      好久不见,可不可以从两个SQL数据库表中获取两个表中字段组合成一个列表?目前我只会一个。在同一个表中可以,但SQL表就不行了。

同一个表我用的是

If e.IsFocusCell Then
    If e.Col.Name = "姓名" Then
       e.Col.Combolist = DataTables("海外人员").GetComboListString("姓名") & "|" &  DataTables("国内人员").GetComboListString("姓名")
    End If
End If

 

If e.IsFocusCell Then
    If e.Col.Name = "姓名" Then
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    cmd.C
    cmd.CommandText = "SELECT DISTINCT 姓名 From {海外人员}"
    dt = cmd.ExecuteReader
    Tables("订单表").Cols("业务员").Combolist = dt.GetComboListString("姓名")
    End If
End If


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/15 17:23:00 [只看该作者]

参考这里头的Union运算符:

 

http://www.foxtable.com/help/topics/0688.htm

 

 


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


加好友 发短信
等级:三尾狐 帖子:623 积分:3897 威望:0 精华:0 注册:2011/8/3 22:13:00
  发帖心情 Post By:2011/12/15 18:58:00 [只看该作者]

If e.IsFocusCell Then
If e.Col.Name = "姓名" Then
Dim cmd As New SQLCommand

Dim cmd1 As New SQLCommand
Dim dt As DataTable

Dim dt1 As DataTable
cmd.C

cmd1.C
cmd.CommandText = "SELECT DISTINCT 姓名 From {海外人员}"

cmd1.CommandText = "SELECT DISTINCT 姓名 From {国内人员}"
dt = cmd.ExecuteReader

dt1 = cmd1.ExecuteReader
Tables("订单表").Cols("业务员").Combolist = dt.GetComboListString("姓名")& "|" & Dt1.GetComboListString("姓名")
End If
End If

 

笨办法


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


加好友 发短信
等级:一尾狐 帖子:418 积分:3209 威望:0 精华:0 注册:2010/2/24 13:33:00
  发帖心情 Post By:2011/12/19 9:16:00 [只看该作者]

If e.IsFocusCell Then
    If e.Col.Name = "姓名" Then
        Dim cmd As New SQLCommand
        Dim dt As DataTable
        cmd.C
        cmd.CommandText = "Select 业务员 FROM {国外业务} UNION SELECT 业务员 FROM {国内业务} "
        dt = cmd.ExecuteReader
        e.Col.Combolist = dt.GetComboListString("业务员")
 
    End If
    End If

 

感谢狐爸,使用以上代码,从两个表获取到了列表。另还有个问题需请教

我想控制从列表选择出列表指定值后,会控制从两表对应人员带出身份证号,我用的是

DataColchanged事件

 

If e.DataCol.Name = "姓名" Then
    Dim cmd As New SQLCommand
    Dim dt As DataTable
    Dim dr As DataRow = e.DataRow
    cmd.C
    cmd.CommandText = "SELECT * From {国内业务} Where [业务员] = '" & dr("基础信息_姓名") & "'" 

    dt = cmd.ExecuteReader
    If dt.DataRows.Count > 0 Then
        dr("基础信息_姓名") = dt.DataRows(0)("业务员") 

        dr("基础信息_身份证号") = dt.DataRows(0)("身份证号")
      Else
        dr("基础信息_姓名") = Nothing
        dr("基础信息_身份证号") = Nothing

End If
End If

 

这是一个表可以控制非列表列出值不可填写,那么,如何控制从两个表也有这个效果呢?请指教。


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


加好友 发短信
等级:一尾狐 帖子:418 积分:3209 威望:0 精华:0 注册:2010/2/24 13:33:00
  发帖心情 Post By:2011/12/19 11:29:00 [只看该作者]

哈哈 研究出来了!

If e.DataCol.Name = "姓名" Then
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim dr As DataRow = e.DataRow
cmd.C
cmd.CommandText = "SELECT 身份证号 From {国内业务} Where [业务员] = '" & dr("基础信息_姓名") & "' UNION SELECT 身份证号 From {国外业务} Where [业务员] = '" & dr("基础信息_姓名") & "'"

dt = cmd.ExecuteReader
If dt.DataRows.Count > 0 Then
dr("基础信息_姓名") = dt.DataRows(0)("业务员")

dr("基础信息_身份证号") = dt.DataRows(0)("身份证号")
Else
dr("基础信息_姓名") = Nothing
dr("基础信息_身份证号") = Nothing

End If
End If


 回到顶部