以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 定位父表的记录出错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=68281) |
-- 作者:瞩望星空 -- 发布时间:2015/5/14 8:34:00 -- 定位父表的记录出错 想通过订单明细表的行,定位到订单主表的行,这样写,提示出错: --------------------------- 版本:2014.11.11.1 --------------------------- 代码执行出错,错误信息: System.NullReferenceException: 未将对象引用设置到对象的实例。 在 Foxtable.DataRow.GetParentRow(String ParentTableName) 在 UserCode.Test() 代码如下: Dim dr As DataRow = DataTables("订单明细表").SQLfind("客户订单号 = \'20150408\'") \'20150408为已存在的客户订单号 If dr IsNot Nothing Then Dim pr As DataRow = dr.GetParentrow("订单主表") Else MessageBox.Show("没有找到该订单号") End If |
-- 作者:Bin -- 发布时间:2015/5/14 8:37:00 -- 错误代码应该不是这里. 这个代码没问题.具体请上例子看看 |
-- 作者:Bin -- 发布时间:2015/5/14 8:38:00 -- 也有可能是 SQLFIND的行.无法GetParentrow 因为是后台单独加载的行. |
-- 作者:瞩望星空 -- 发布时间:2015/5/14 8:54:00 -- 很可能是通过SQLFIND找到行,没有加载表。 本人不知道如何再加些代码去定位父表记录了,请版主帮助看看: |
-- 作者:Bin -- 发布时间:2015/5/14 9:01:00 -- 用SQLSelect http://www.foxtable.com/help/topics/2900.htm 不要用 GetParentrow
|
-- 作者:大红袍 -- 发布时间:2015/5/14 9:09:00 -- Dim pr As DataRow = dr.GetParentrow("订单主表")
这句代码改成也用sqlFind
Dim pr As DataRow = DataTables("订单主表").SQLfind("订单号 = \'" & dr("订单号") & "\'") |
-- 作者:瞩望星空 -- 发布时间:2015/5/14 9:09:00 -- SQLSelect也不合适,实际项目中,“订单客户”只存在于“订单主表”中。 我可能要去改改查询方式,通过查询“订单主表”的客户订单号,先求得“订单客户”,再处理其他事情。 谢谢版主!
|
-- 作者:Bin -- 发布时间:2015/5/14 9:11:00 -- 看6楼. 用SQLFIND . 刚才没看准以为获取子表. |
-- 作者:瞩望星空 -- 发布时间:2015/5/14 9:26:00 -- 嗯,6楼正解,我现在项目中也改成这样了。 谢谢二位版主!
|