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


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

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

帅哥哟,离线,有人找我吗?
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


 回到顶部
帅哥哟,离线,有人找我吗?
ddlzq
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


 回到顶部