以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于多表数据上报的问题? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=9679) |
-- 作者:rcsy001 -- 发布时间:2011/5/2 16:53:00 -- 关于多表数据上报的问题? 看了新版帮助,里面有数据上报的帮助,感觉非常好。 帮助就单表上报说明的很清楚了,我想请教多表数据上报如何操作?。 例如:我用A,B,C三张表,A为父表(AID主键),B(BID主键)C(CID主键)为子表,表B、表C都有AID字段,通过AID与表A的AID字希关联。表A的AID为自动编号字段。 在下级单位,表A的ID应为,1,2,3。。。。表B、表C与之相关联的AID字段值,也应为1,2,3 这样,上报时,主表并入上级单位主表,AID会自动更新,问题是子表上报并入上级数据后,与之相关联的AID会自动更新吗? 这样上报的数据能行吗?
|
-- 作者:狐狸爸爸 -- 发布时间:2011/5/2 17:37:00 -- 先给你一个思路,随便写的,自己琢磨一下: 1、动态创建数据源,连接到要合并的文件 http://help.foxtable.com/topics/1494.htm
2、用SQlCommand的ExcuteReader从要合并的文件生成三个DataTable,分别为dt1和dt2和dt3 http://help.foxtable.com/topics/0696.htm
3、 For each dr1 as datarow in dt1.DataRows Dim dr2 as datarow = DataTables("表A").AddNew() for each dc as datarow in dt1.DataCols if dc.name <> "主键名称" dr2(dc.name) = dr1(dc.name) end if next dim drs2 as list(of datartow) = dt2.Select("主键名= " & dr1(主键名)) for each dr3 as datarow in drs2 Dim dr4 As DataRow = DAtaTables("表B").AddNew dr4("主键名称") = dr2(主键名称) for each dc as datarow in dt2.dataCols if dc.name <> "主键名称" then dr4(dc.name) = dr3(dc.name) end if next next
|