Foxtable(狐表)用户栏目专家坐堂 → [求助]修改数值后关联表数值不会更改


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

主题:[求助]修改数值后关联表数值不会更改

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


加好友 发短信
等级:三尾狐 帖子:683 积分:5399 威望:0 精华:0 注册:2015/1/23 0:31:00
[求助]修改数值后关联表数值不会更改  发帖心情 Post By:2018/8/13 11:18:00 [只看该作者]

请问下下面标色的代码为什么不会把后台数据改为对应的新值,我希望原来单元格的值是空值,就自动改为新值,改完后同步表数据没有变,但是如果原来单元格不是空值,再次更改就会更改成功,我加了代码查看空值的时候是否允许,结果是了这段代码的
Dim Filter As String = "检验批编号 = '" & e.DataRow("检验批编号") & "'"
Dim Filter1 As String = "检验批编号 = '" & e.DataRow("检验批编号") & "'and 班组 <> '"& "下料" &"'"
Dim drs1 As List(Of DataRow) = DataTables("无损_构件清单").SQLSelect(Filter)
Dim drs2 As List(Of DataRow) = DataTables("无损_检测明细").SQLSelect(Filter)
Select Case e.DataCol.Name
    Case "班组"
        If e.OldValue = "" Then
                For Each dr1 As DataRow In drs1
                    dr1("班组") = e.DataRow("班组") '修改构件清单表
                Next
        Else
            Dim Result As DialogResult = MessageBox.Show("是否将明细表数据全部更改(不包含下料组)","提示",MessageBoxButtons.YesNo)
            For Each dr1 As DataRow In drs1
                dr1("车间") = e.DataRow("车间")
            Next
            If Result = DialogResult.Yes Then
                For Each dr2 As DataRow In drs2
                    dr2("车间") = e.DataRow("车间")
                Next
            Else
                Return
            End If
        End If
End Select

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


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

修改后要save,或者update的

 

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

 


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


加好友 发短信
等级:三尾狐 帖子:683 积分:5399 威望:0 精华:0 注册:2015/1/23 0:31:00
回复:(有点甜)修改后要save,或者update的 ...  发帖心情 Post By:2018/8/13 13:31:00 [只看该作者]

已经保存了的,还是不行,如果去掉这段就可以

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


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

以下是引用紫色幽魂在2018/8/13 13:31:00的发言:
已经保存了的,还是不行,如果去掉这段就可以

 

做个可以测试的例子发上来。


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


加好友 发短信
等级:三尾狐 帖子:683 积分:5399 威望:0 精华:0 注册:2015/1/23 0:31:00
回复:(有点甜)以下是引用紫色幽魂在2018/8/13 13:3...  发帖心情 Post By:2018/8/14 16:19:00 [只看该作者]

这个位置增加了一段测试,没有问题,每一步都执行了显示的也是正确的,但是结果不会改,是不是前面 Filter筛选条件错误呢
       For Each dr1 As DataRow In drs1
msgbox("准备将"& dr1("检验批") & "改为" & e.DataRow("检验批"))
            dr1("检验批") = e.DataRow("检验批")
        Next

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


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

SystemReady = false

For Each dr1 As DataRow In drs1

    dr1("检验批") = e.DataRow("检验批")
    dr1.save
Next
SystemReady = True

 回到顶部
帅哥哟,离线,有人找我吗?
紫色幽魂
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:683 积分:5399 威望:0 精华:0 注册:2015/1/23 0:31:00
回复:(有点甜)SystemReady = falseFor Each dr1 ...  发帖心情 Post By:2018/8/14 18:03:00 [只看该作者]

现在可以了,请问下这个是怎么回事,是别的代码干预了吗

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


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

以下是引用紫色幽魂在2018/8/14 18:03:00的发言:
现在可以了,请问下这个是怎么回事,是别的代码干预了吗

 

改成这样试试

 

For Each dr1 As DataRow In drs1

    dr1("检验批") = e.DataRow("检验批")
    dr1.save
Next

 回到顶部
帅哥哟,离线,有人找我吗?
紫色幽魂
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:683 积分:5399 威望:0 精华:0 注册:2015/1/23 0:31:00
回复:(有点甜)以下是引用紫色幽魂在2018/8/14 18:0...  发帖心情 Post By:2018/8/15 14:00:00 [只看该作者]

这样也可以,但是原来我在代码后面也进行 了保存的            DataTables("无损_检测明细").SQLUpdate(drs3),手动保存也保存过,刷新也是没有,但是你后面给我说的两个方法都可以,这有什么不同吗 

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


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

那改成

 

DataTables("无损_构件清单").SQLUpdate(drs1)

 


 回到顶部
总数 12 1 2 下一页