Foxtable(狐表)用户栏目专家坐堂 → 如何替换相关所有表的数据


  共有2731人关注过本帖树形打印复制链接

主题:如何替换相关所有表的数据

帅哥哟,离线,有人找我吗?
ZJZK2018
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
如何替换相关所有表的数据  发帖心情 Post By:2018/9/2 21:04:00 [只看该作者]

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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/2 21:05:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
ZJZK2018
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/10/14 18:05:00 [只看该作者]

1、报什么错?

 

2、改成

 

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


 回到顶部