以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 偶尔出现同步更新待办不成功 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=172499) |
-- 作者:cd_tdh -- 发布时间:2021/10/15 16:18:00 -- 偶尔出现同步更新待办不成功 老师,我以下代码,放到表的DataColChanged 事件,会偶尔出现审批状态不能更新到待办事项表的情况,排除了ID重复的可能,请看看代码是否有问题? \'添加到待办事项 [此贴子已经被作者于2021/10/15 16:20:56编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/10/15 16:28:00 -- 1、判断单元格空值使用isnull:http://www.foxtable.com/webhelp/topics/0426.htm 2、case里有2个列【Case "审批状态","ID" 】,下面代码只会更新一个列的数据。如果是通过ID列触发的事件,就只会改ID列,不会改状态列的 Dim Filter As String = "ID = \'" & e.DataRow("ID") & "\'"
Dim drs As List(Of DataRow) = DataTables("待办事项").S elect(Filter) For Each ds As DataRow In drs ds(e.DataCol.Name) = e.NewValue Next |
-- 作者:cd_tdh -- 发布时间:2021/10/15 16:38:00 -- 第一次添加到待办事项后,后面只需要更新审批状态列,意思是直接用find,找到后直接更新审批状态,不用S elect,这样写就行了哇?
End If [此贴子已经被作者于2021/10/15 16:41:27编辑过]
|
-- 作者:有点蓝 -- 发布时间:2021/10/15 16:45:00 -- 只有一条数据就使用find,如果有多条要更新就select |
-- 作者:cd_tdh -- 发布时间:2021/10/15 16:52:00 -- 以前还不是很清楚逻辑的时候弄的,那这儿该写成这样:dr("审批状态") = e.DataRow("审批状态"),还是写成这样: dr("审批状态") = e.NewValue 这个呢 |
-- 作者:有点蓝 -- 发布时间:2021/10/15 17:05:00 -- 2楼说的很清楚了,e.NewValue是触发列的值,比如是更改ID列触发的事件,e.NewValue就是ID的值。 多个列的情况下,一般最好是指定列名取值
|
-- 作者:cd_tdh -- 发布时间:2021/10/18 14:29:00 -- 老师,我有两个表更新审批状态还是不成功,是哪儿有问题啊? |
-- 作者:有点蓝 -- 发布时间:2021/10/18 14:39:00 -- 能帮我申请到哈勃的使用权吗,我穿过千山万水看能不能看到您桌面的代码,然后脑补一下执行过程..... |
-- 作者:cd_tdh -- 发布时间:2021/10/18 14:40:00 -- 以下是引用有点蓝在2021/10/18 14:39:00的发言:
能帮我申请到哈勃的使用权吗,我穿过千山万水看能不能看到您桌面的代码,然后脑补一下执行过程..... 什么意思? |
-- 作者:有点蓝 -- 发布时间:2021/10/18 14:41:00 -- http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=150626 |