以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]非关联表之间的数据同步问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186084)

--  作者:dhyskyworld
--  发布时间:2023/4/5 16:23:00
--  [求助]非关联表之间的数据同步问题
看了非关联表之间的数据同步帮助文件和示例,
Select Case e.DataCol.name
    Case "产品编号"
        Dim dr As DataRow = DataTables("库存").Find("产品编号 = \'" & e.OldValue & "\'")
        
If dr Is Nothing Then
            dr = DataTables(
"
库存").AddNew()
            dr(
"
产品编号") = e.DataRow("产品编号")
            dr(
"
产品名称") = e.DataRow("产品名称")
            dr(
"
产品规格") = e.DataRow("产品规格")
        Else
            dr(
"
产品编号") = e.DataRow("产品编号")
        End If
    Case 
"
产品名称","产品规格"
        Dim dr As DataRow = DataTables(
"
库存").Find("产品编号 = \'" & e.DataRow("产品编号") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        
End If
End
 Select
求教一个问题,如果产品表中产品名称列是一个分层表头,比如列名为产品名称_A,而库存表中的列名是产品名称,示例中的代码要如何调整。新手不太会,求赐教。

[此贴子已经被作者于2023/4/5 16:28:15编辑过]

--  作者:有点蓝
--  发布时间:2023/4/6 9:01:00
--  
直接改为实际的列名即可

dr(
"
产品名称") = e.DataRow("产品名称")
改为
dr("产品名称_A") = e.DataRow("产品名称")

--  作者:dhyskyworld
--  发布时间:2023/4/6 10:46:00
--  
修改后没有效果是怎么回事?编写的代码如下:
Select Case e.DataCol.name
    Case "姓名"
        Dim dt As DataRow = DataTables("LOA").Find("姓名 = \'" & e.OldValue & "\'")
        If dt Is Nothing Then
            dt = DataTables("LOA").AddNew()
            dt("姓名") = e.DataRow("姓名")
            dt("工龄_年") = e.DataRow("工龄") 
        Else
            dt("姓名") = e.DataRow("姓名")
        End If
    Case "工龄"
        Dim dt As DataRow = DataTables("LOA").Find("姓名 = \'" & e.DataRow("姓名") & "\'")
        If dt IsNot Nothing Then
            dt(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select
请老师指点
[此贴子已经被作者于2023/4/6 11:50:52编辑过]

--  作者:有点蓝
--  发布时间:2023/4/6 10:49:00
--  
代码放在哪个表?工龄_年是哪个表的?
--  作者:dhyskyworld
--  发布时间:2023/4/6 12:10:00
--  
按照示例里说的,示例里的产品表相当于我的A表,库存表相当我的B表,我的代码是放在A表,工龄_年是A表里的,B表里的列是工龄
--  作者:有点蓝
--  发布时间:2023/4/6 13:37:00
--  
要把A表数据填入到B表?还是要把B表数据填入到A表?
--  作者:dhyskyworld
--  发布时间:2023/4/6 14:23:00
--  
是把A表数据填入到B表
--  作者:有点蓝
--  发布时间:2023/4/6 14:24:00
--  
dt("工龄_年") = e.DataRow("工龄") 
改为
dt("工龄") = e.DataRow("工龄_年") 

--  作者:dhyskyworld
--  发布时间:2023/4/6 14:31:00
--  
还是不行,A表的工龄输入数据后,B表工龄那里还是没有数据,之前试过把两个列名改成一样是没有问题的
[此贴子已经被作者于2023/4/6 14:31:41编辑过]

--  作者:dhyskyworld
--  发布时间:2023/4/6 14:33:00
--  
我在想是不是这段代码的问题,dt(e.DataCol.Name) = e.DataRow(e.DataCol.Name)