以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  用SQLSelect出来的DataRow不能查找父行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91865)

--  作者:affixed
--  发布时间:2016/10/20 15:48:00
--  用SQLSelect出来的DataRow不能查找父行
 进行一下操作,发现一只提示“未将对象引用设置到对象的实例。”

关联表子表中我用SQLSelect得到了一个DataRow集合,然后用For Each来遍历这个集合中每个DataRow的ParentRow。
运行到这行GetParentRow代码时就报错。

Dim drsArrivalList As new List(of DataRow)

drsArrivalList = DataTables("TB_ArrivalList").SQLSelect("P And State <> \'已开票\'")

For Each drArrivalList As DataRow In drsArrivalList
    If drsArrivalList.Count > 0 Then   <----- 执行到这里都是没问题的,监视到Count的数值正常
        MessageBox.Show(drArrivalList.GetParentRow("TB_Arrival")("SupplierCompanyName"))   <----- 用MessageBox来抓错,发现问题就在这里
    End If
Next

请各位老师指点。谢谢!

--  作者:有点蓝
--  发布时间:2016/10/20 15:57:00
--  
SQLSelect出来的是独立的datarow,跟原表没有关系,不会有GetParentRow的值

用Select,要么就通过关联字段去查询父表的值

--  作者:狐狸爸爸
--  发布时间:2016/10/20 15:58:00
--  
SqlFind出来的表,并不存在于DataTable中,关联对他无效。

请用find根据关联列找出父表行: