以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  【求助】数据引用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93597)

--  作者:好吧
--  发布时间:2016/12/2 8:49:00
--  【求助】数据引用
各位老师,请教个问题:foxtable中有两张表,表A、表B,数据库中有张表C,现在想在表A中引用数据库表C的数据,但是表A跟表C没有相同的列,表B跟表C就有相同的列(例如 编码列相同),表A跟表B也有相同列(例如 订单号),如果表A要引用数据库中表C中数据的话该怎么做呢??请赐教,谢谢!!
--  作者:有点蓝
--  发布时间:2016/12/2 9:12:00
--  
通过表A订单号查找到表B的编码,在通过编码到表C查询,就是要查2次


--  作者:好吧
--  发布时间:2016/12/2 10:37:00
--  
下面是我写的代码,详细错误信息是:调用的目标发生了异常。未将对象引用设置到对象的实例。
找了很久不知道是什么原因,请老师帮忙看下,谢谢啦!!

If e.DataCol.Name = "订单号" Then
    Dim nms() As String = {"产品编码","产品类别","产品名称"}
    If e.NewValue Is Nothing Then
        For Each nm As String In nms
            e.DataRow(nm) = Nothing
        Next
    Else
        Dim a As String
        Dim dr1 As DataRow
        Dim dr2 As DataRow
        dr1 = DataTables("表B").Find("[订单号] = \'" & e.NewValue & "\'")
        If dr1 IsNot Nothing
            a = dr1("编码")
        End If
        dr2 = qj1.sqlfind("[编码] = \'" & a & "\'")
        If dr2 IsNot Nothing
            For Each x As String In nms
                e.DataRow(x) = dr2(x)
            Next
        End If
    End If
End If

--  作者:有点蓝
--  发布时间:2016/12/2 11:05:00
--  
If e.DataCol.Name = "订单号" Then
    Dim nms() As String = {"产品编码","产品类别","产品名称"}
    If e.NewValue Is Nothing Then
        For Each nm As String In nms
            e.DataRow(nm) = Nothing
        Next
    Else
        Dim dr1 As DataRow
        Dim dr2 As DataRow
        dr1 = DataTables("表B").Find("[订单号] = \'" & e.NewValue & "\'")
        If dr1 IsNot Nothing
            dr2 = qj1.sqlfind("[编码] = \'" & dr1("编码") & "\'")
            If dr2 IsNot Nothing
                For Each x As String In nms
                    e.DataRow(x) = dr2(x)
                Next
            End If 
        End If
    End If
End If

上面的qj1表是否已经定义?

--  作者:好吧
--  发布时间:2016/12/2 11:16:00
--  
定义了,
--  作者:好吧
--  发布时间:2016/12/2 11:22:00
--  
老师,我想问下: 生产临时表的时候,where后面一定要用主键[_Identify]??我用其他列不空的不行??
--  作者:有点蓝
--  发布时间:2016/12/2 11:26:00
--  
什么意思?没看懂
--  作者:好吧
--  发布时间:2016/12/2 11:35:00
--  
为什么我要发那段代码发不出去??
  • 提交参数错误
  • 请仔细阅读论坛帮助文件,确保您有相应的操作权限。

--  作者:有点蓝
--  发布时间:2016/12/2 11:36:00
--  
有sql?看看http://foxtable.com/bbs/dispbbs.asp?boardid=2&Id=69632
--  作者:好吧
--  发布时间:2016/12/2 11:39:00
--  
我想问就是下面这段代码,第三行where后面一定要是主键[_Identify]??我用其他列不空的不行??
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "SELECT * Fro m {产品规格表} Where [ID] Is Null"
qj1 = cmd.ExecuteReader