以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]多表引用  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=157448)

--  作者:huaziqiao1976
--  发布时间:2020/10/16 12:01:00
--  [求助]多表引用
想实现加载外表后,找出zjhm列和“信息比对“表中身份证号列相同的所有行,然后将筛选出的数据生成到股金客户信息表中去,出现的问题无响应
Dim cmd1 As New SQLCommand
cmd1.C
Dim dt1 As DataTable
Dim Cols1() As String = {"f_zh","f_hm","f_zjhm"}
Dim Cols2() As String = {"账号","户名","身份证号"}
cmd1.CommandText = "SE*LECT * From {tb_ckzhxx}"
dt1 = cmd1.ExecuteReader()
For Each dr1 As DataRow In dt1.DataRows
    For Each dr2 As DataRow  In DataTables("信息比对").datarows
        If DataTables("tb_ckzhxx").Find("f_zjhm = \'" & dr2("身份证号") &"\'") Is Nothing Then
            Dim dr3 As DataRow = DataTables("股金客户信息").AddNew()
            For i1 As Integer = 0 To Cols1.Length -1
                dr3(Cols2(i1)) = dr1(Cols1(i1))
            Next
        End If
    Next
Next

--  作者:有点蓝
--  发布时间:2020/10/16 12:11:00
--  
Dim cmd1 As New SQLCommand
cmd1.C
Dim dt1 As DataTable
Dim Cols1() As String = {"f_zh","f_hm","f_zjhm"}
Dim Cols2() As String = {"账号","户名","身份证号"}
cmd1.CommandText = "SELECT * From {tb_ckzhxx} where f_zjhm in (select 身份证号 from {信息比对})"
dt1 = cmd1.ExecuteReader()
For Each dr1 As DataRow In dt1.DataRows
            Dim dr3 As DataRow = DataTables("股金客户信息").AddNew()
            For i1 As Integer = 0 To Cols1.Length -1
                dr3(Cols2(i1)) = dr1(Cols1(i1))
            Next
Next

--  作者:huaziqiao1976
--  发布时间:2020/10/16 12:29:00
--  
蓝版,信息比对表不是外表
--  作者:有点蓝
--  发布时间:2020/10/16 13:35:00
--  
cmd1.CommandText = "SELECT * From {tb_ckzhxx} where f_zjhm in (\'" & DataTables("信息比对").GetComboListString("身份证号").Replace("|","\',\'") & "\')"
--  作者:huaziqiao1976
--  发布时间:2020/10/16 14:24:00
--  
谢谢蓝版,又学到一个很实用的代码