以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 多列关联时主子表如何写代码加载 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63536) |
-- 作者:HappyFt -- 发布时间:2015/1/23 0:13:00 -- 多列关联时主子表如何写代码加载 \'如果主表没数据不加载明细,
上面是只有订单编号一列作为关联列时的情况,如果订单与订单明细是通过两个关联列如“订单编号,客户ID”关联的代码要如何写呢,要同上面按sqlLoad的写法.. 谢谢! |
-- 作者:Bin -- 发布时间:2015/1/23 8:02:00 -- 那就要把条件从 in (\'1\',\'2\',\'3\') 改为 (关联列1=\'1\' and 关联列2=\'2\') or (关联列1=\'3\' and 关联列2=\'4\') or (关联列1=\'13\' and 关联列2=\'14\')
|
-- 作者:HappyFt -- 发布时间:2015/1/23 8:53:00 -- 那下面这句要怎么修改呢,因为多个关联列不知道怎么把它们集合在一起,还是要用数组集合之类的。 For Each cdr As DataRow In DataTables("订单").dataRows |
-- 作者:Bin -- 发布时间:2015/1/23 9:00:00 -- For Each cdr As DataRow In DataTables("订单").dataRows ids = ids & "or (关联列1=\'" & cdr("关联列1") & "\' and 关联列2=\'" & cdr("关联列2") & "\') " Next Dim sql As String = "S elect * from {订单明细} where " & ids.substring(2,ids.length-2) 至少要掌握一下基础知识.
|
-- 作者:有点甜 -- 发布时间:2015/1/23 9:01:00 -- 可以直接这样
DataTables("名单").LoadChildren("明细", "身份证号]+[入院时间", "[身份证号]+[入院时间]")
或者,多列合并以后,LoadFilter这样写
"S elect * from {订单明细} where [身份证号]+[入院时间] In (" & ids & ")" |
-- 作者:HappyFt -- 发布时间:2015/1/23 9:18:00 -- 以下是引用有点甜在2015-1-23 9:01:00的发言:
可以直接这样
DataTables("名单").LoadChildren("明细", "身份证号]+[入院时间", "[身份证号]+[入院时间]")
或者,多列合并以后,LoadFilter这样写
"S elect * from {订单明细} where [身份证号]+[入院时间] In (" & ids & ")" 因为主表的数据全部都是用sqlload的方式加载的, 用DataTables("名单").LoadChildren("明细", "身份证号]+[入院时间", "[身份证号]+[入院时间]") 这样的方式加载会提示错误,好象sqlload与datatable.load不能同时用 |
-- 作者:有点甜 -- 发布时间:2015/1/23 9:20:00 -- 1、ids合并多列内容,分隔符用 \',\' 如 \'123456\',\'789\'
2、sql语句 "S elect * from {订单明细} where [第一列]+[第二列] In (" & ids & ")" |
-- 作者:HappyFt -- 发布时间:2015/1/23 16:46:00 -- 请教两位老师,4楼用or连接明细表的所有需要加载的数据和7楼用in选择的方式哪种效率高些,还是都一样? |
-- 作者:有点甜 -- 发布时间:2015/1/23 16:48:00 -- 以下是引用HappyFt在2015-1-23 16:46:00的发言:
请教两位老师,4楼用or连接明细表的所有需要加载的数据和7楼用in选择的方式哪种效率高些,还是都一样?
效率差不多。 |
-- 作者:Bin -- 发布时间:2015/1/23 16:48:00 -- In 简便一些, 效率上来说应该差不多,你测试一下便知 |