以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]修改数值后关联表数值不会更改 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=123366) |
-- 作者:紫色幽魂 -- 发布时间: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
|
-- 作者:有点甜 -- 发布时间:2018/8/13 12:09:00 -- 修改后要save,或者update的
http://www.foxtable.com/webhelp/scr/2901.htm
|
-- 作者:紫色幽魂 -- 发布时间:2018/8/13 13:31:00 -- 回复:(有点甜)修改后要save,或者update的 ... 已经保存了的,还是不行,如果去掉这段就可以 |
-- 作者:有点甜 -- 发布时间:2018/8/13 15:27:00 -- 以下是引用紫色幽魂在2018/8/13 13:31:00的发言:
已经保存了的,还是不行,如果去掉这段就可以
做个可以测试的例子发上来。 |
-- 作者:紫色幽魂 -- 发布时间:2018/8/14 16:19:00 -- 回复:(有点甜)以下是引用紫色幽魂在2018/8/13 13:3... 这个位置增加了一段测试,没有问题,每一步都执行了显示的也是正确的,但是结果不会改,是不是前面 Filter筛选条件错误呢 For Each dr1 As DataRow In drs1 msgbox("准备将"& dr1("检验批") & "改为" & e.DataRow("检验批")) dr1("检验批") = e.DataRow("检验批") Next
|
-- 作者:有点甜 -- 发布时间:2018/8/14 16:42:00 -- SystemReady = false For Each dr1 As DataRow In drs1 dr1("检验批") = e.DataRow("检验批")
dr1.save
Next
SystemReady = True
|
-- 作者:紫色幽魂 -- 发布时间:2018/8/14 18:03:00 -- 回复:(有点甜)SystemReady = falseFor Each dr1 ... 现在可以了,请问下这个是怎么回事,是别的代码干预了吗 |
-- 作者:有点甜 -- 发布时间: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
|
-- 作者:紫色幽魂 -- 发布时间:2018/8/15 14:00:00 -- 回复:(有点甜)以下是引用紫色幽魂在2018/8/14 18:0... 这样也可以,但是原来我在代码后面也进行 了保存的 DataTables("无损_检测明细").SQLUpdate(drs3),手动保存也保存过,刷新也是没有,但是你后面给我说的两个方法都可以,这有什么不同吗 |
-- 作者:有点甜 -- 发布时间:2018/8/15 14:39:00 -- 那改成
DataTables("无损_构件清单").SQLUpdate(drs1)
|