以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]有关BeforeSaveDataRow事件用法(已解决) (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=38230) |
-- 作者:exonjee -- 发布时间:2013/7/23 11:47:00 -- [求助]有关BeforeSaveDataRow事件用法(已解决) 请教如何在BeforeSaveDataRow事件中使用新旧值比较,例如: if e.newvalue<>e.oldvalue then msgbox(1) end if 运行代码报错,请教想要在此事件中实现这样的比较该怎样写代码? [此贴子已经被作者于2013-7-24 15:29:19编辑过]
|
-- 作者:lsy -- 发布时间:2013/7/23 11:52:00 -- If e.DataTable.HasChanges Then |
-- 作者:Bin -- 发布时间:2013/7/23 11:52:00 -- 你好.BeforeSaveDataRow事件并没有newvalue oldvalue 参数哦 只有在行改变事件 例如DataColChanged事件才会有对应的参数的. 才能进行新旧值比较.
|
-- 作者:狐狸爸爸 -- 发布时间:2013/7/23 15:03:00 -- 获得新值和旧值的另一个方法: |
-- 作者:exonjee -- 发布时间:2013/7/24 10:19:00 -- 请问如果要频繁获取后台值, 1、select * from A where _identify=\'123\' 2、LoadPhysicalValue
这两种方法哪个效率更高 |
-- 作者:Bin -- 发布时间:2013/7/24 10:23:00 -- 实际上都是执行了一段SQL语句 效率上应该没有太大区别. |
-- 作者:exonjee -- 发布时间:2013/7/24 14:04:00 -- 使用LoadPhysicalValue获取后台值,当为数值类型时,当数值类型为空时后台调取显示为空值,和表中的值比较时会出现报错,请检查是否为bug if dr("A")=dic(key) msgbox("B") end if
报错为“标准表达式中数据类型不匹配” .NET Framework 版本:2.0.50727.3053 [此贴子已经被作者于2013-7-24 14:05:23编辑过]
|
-- 作者:Bin -- 发布时间:2013/7/24 14:07:00 -- 因为空值是不能和数值比较的.不是BUG 是正常现象,自己手动判断一下即可. |
-- 作者:exonjee -- 发布时间:2013/7/24 14:13:00 -- 需要检查所有列,如何判断 if dr(dc.name)=dic(key) msgbox("B") end if
|
-- 作者:Bin -- 发布时间:2013/7/24 14:23:00 -- 先判断一下是否为空 再做等于判断 if dr.isnull(dc.name)=false andAlso dic(key) isnot nothing then |