以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于GetParentRow的使用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=80356)

--  作者:sjzsdu
--  发布时间:2016/1/21 10:48:00
--  关于GetParentRow的使用
Dim dr As DataRow = DataTables("客户联系人").SQLFind("QQ号码 like 122828837")
If dr IsNot Nothing Then
 Dim pr As DataRow = dr.GetParentRow("客户信息")
MessageBox.show(pr("公司简称"))
Else
MessageBox.show("nothing")
End If

客户信息是父表,客户联系人是子表,两者通过“客户ID”,已经做了关联
报出来错误【未将对象引用设置到实例】

为什么上面的SQLfind查找出来dr的不能用
而用Dim dr As DataRow = DataTables("客户联系人").datarows(0)却可以使用

--  作者:大红袍
--  发布时间:2016/1/21 10:53:00
--  
Dim dr As DataRow = DataTables("客户联系人").SQLFind("QQ号码 like \'%122828837%\'")
[此贴子已经被作者于2016/1/21 10:54:14编辑过]

--  作者:sjzsdu
--  发布时间:2016/1/21 10:57:00
--  
SQLFind("QQ号码 like \'%122828837%\'")这样写还是一样的出错


--  作者:大红袍
--  发布时间:2016/1/21 10:58:00
--  

那就是这句代码有问题,没有父表数据

 

Dim pr As DataRow = dr.GetParentRow("客户信息")

If pr IsNot Nothing Then

    MessageBox.show(pr("公司简称"))
End If

--  作者:sjzsdu
--  发布时间:2016/1/21 11:03:00
--  回复:(大红袍)那就是这句代码有问题,没有父表数据...
父表数据确定有的,表名也没有错。
找出来的dr也是存在的

现在确定下来出错的那句代码:Dim pr As DataRow = dr.GetParentRow("客户信息")
如果 Dim dr As DataRow = DataTables("客户联系人").datarows(0)
那就没有错


--  作者:大红袍
--  发布时间:2016/1/21 11:04:00
--  

sqlFind的行,可能无法找到父表。

 

那你就直接再sqlFind父表的数据

 

Dim fdr As DataRow = DataTables("客户信息").SQLFind("名称 = \'" & dr("名称") & "\'")


--  作者:sjzsdu
--  发布时间:2016/1/21 11:20:00
--  
嗯,只能这样了