以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  如何替换相关所有表的数据  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=124233)

--  作者:ZJZK2018
--  发布时间:2018/9/2 21:04:00
--  如何替换相关所有表的数据
老师:
我有一个“系统编号”表内有“系统编号“和”项目名称“列,其他表中如有“系统编号”和”项目名称“列时,如果系统编号表中的系统编号或项目名称调整时,其他表也更新系统编号或项目名称的值,如何处理?
[此贴子已经被作者于2018/9/2 21:04:55编辑过]

--  作者:有点甜
--  发布时间:2018/9/2 21:05:00
--  

参考

 

http://www.foxtable.com/webhelp/scr/1453.htm

 


--  作者:ZJZK2018
--  发布时间:2018/10/13 20:10:00
--  
我的需求是:
遍历所有表,如果找到“系统编号”并有dcnm列名的表,自动更新数据,但下面代码出错?

Dim dcnms() As String = {"咨询类型","项目名称","项目编号","业务性质","投标地区","工程类别","招标方式","归属部门","建设单位"}
For Each dtnm As DataTable In DataTables
    If dtnm.Name <> e.DataTable.Name
        For Each dc As DataCol In DataTables(dtnm.Name).DataCols
            For Each dcnm As String In dcnms
                If dc.Name.Contains(dcnm) Then
                    Select Case e.DataCol.Name
                        Case dc.Name  \'自动更新这些列的数据
                            Dim nmm As String = IIF(e.DataCol.Name = "系统编号",e.OldValue,dr("系统编号"))
                            Dim fdr As DataRow = DataTables(dtnm.Name).Find("系统编号 = \'" & nmm & "\'")   \'以单行的形式,查找符合条件的行,如果找到的话,返回找到的行
                            \'\'Dim fdr As DataRow = DataTables(dtnm.Name).Find("系统编号 = \'" & dr("系统编号") & "\'")   \'以单行的形式,查找符合条件的行,如果找到的话,返回找到的行
                            If fdr IsNot Nothing Then
                                fdr(e.DataCol.Name) = e.NewValue
                            End If
                    End Select
                End If
            Next
        Next
    End If
Next

--  作者:有点甜
--  发布时间:2018/10/14 18:05:00
--  

1、报什么错?

 

2、改成

 

Dim nmm As String = IIF(e.DataCol.Name = "系统编号",e.OldValue, e.datarow("系统编号"))