Foxtable(狐表)用户栏目专家坐堂 → [求助]


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

主题:[求助]

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


加好友 发短信
等级:幼狐 帖子:175 积分:1652 威望:0 精华:0 注册:2015/6/10 13:50:00
[求助]  发帖心情 Post By:2017/6/30 14:55:00 [只看该作者]

希望结算账户变更后,所有表中含结算账户的行一起变更,

问题1:假设数据库有很多不同项目的表,   
        For Each dt As DataTable In DataTables
        If dt.Name = "结算账户" Then
       这样查找的表是数据库中的表,还是项目中表?
问题2:下面的代码为什么没用?

If e.DataCol.Name = "结算账户" Then
    For Each dt As DataTable In DataTables
        If dt.Name = "结算账户" Then
            Continue For
            For Each dr As DataCol In dt.DataCols
                If dr.Name = "结算账户" Then
                    Dim ds As List(of DataRow)
                    ds = dt.Select("结算账户 = '" & e.OldValue & "'")
                    If ds IsNot Nothing Then
                        For Each d As DataRow In ds
                            d("结算账户") = e.NewValue
                        Next
                    End If
                End If
            Next
        End If
    Next
End If

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


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

1、参考

 

for each dt as datatable in datatables
    output.show(dt.ConnectionName)
Next

 

2、

 

If e.DataCol.Name = "结算账户" Then
    For Each dt As DataTable In DataTables
        If dt.DataCols.Contains("结算账户") Then
            dt.ReplaceFor("结算账户", e.newvalue, "结算账户 = '" & e.oldvalue & "'")
        End If
    Next
End If


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


加好友 发短信
等级:幼狐 帖子:175 积分:1652 威望:0 精华:0 注册:2015/6/10 13:50:00
还是不行  发帖心情 Post By:2017/6/30 16:24:00 [只看该作者]

还是不行啊
If e.DataCol.Name = "结算账户" Then
    For Each dt As DataTable In DataTables
        If dt.Name = "结算账户" Then
            Continue For
            If dt.DataCols.Contains("结算账户") Then
                dt.ReplaceFor("结算账户", e.newvalue, "结算账户 = '" & e.oldvalue & "'")
            End If
        End If
    Next
End If


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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/6/30 16:38:00 [只看该作者]

Continue For
如果是成立,则继续下一次循环,本次不执行Continue For的代码了,感觉需要去掉,3楼的Continue For去掉试试
你的代码试试下面的行不行
If e.DataCol.Name = "结算账户" Then
    For Each dt As DataTable In DataTables
        If dt.Name = "结算账户" Then
            ‘Continue For ’是否多余啊
            For Each dr As DataCol In dt.DataCols
                If dr.Name = "结算账户" Then
                    Dim ds As List(of DataRow)
                    ds = dt.Select("结算账户 = '" & dr("结算账户") & "'")
                    If ds IsNot Nothing Then
                        For Each d As DataRow In ds
                            d("结算账户") = e.NewValue
                        Next
                    End If
                End If
            Next
        End If
    Next
End If




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


加好友 发短信
等级:幼狐 帖子:175 积分:1652 威望:0 精华:0 注册:2015/6/10 13:50:00
  发帖心情 Post By:2017/6/30 16:43:00 [只看该作者]

去掉continue 可以了,谢谢

 回到顶部