以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 怎样防止数据被修改 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=22030) |
-- 作者:zhangc2000 -- 发布时间:2012/7/31 16:09:00 -- 怎样防止数据被修改 我在编程时,不知什么原因造成数据库的一些数据被修改,尽管我在数据库中的字段列设置了禁止输入(允许编辑=False),但还是出现过数据被莫名其妙的修改。那么,在设计时需要添加哪些语句才能保证数据不被修改?
谢谢 |
-- 作者:lihe60 -- 发布时间:2012/7/31 16:25:00 -- StartEdit 开始编辑的时候执行。 e参数属性: Table: 准备编辑的表 StartEdit事件的使用方法和PrepareEdit事件完全一样,实际上大部分PrepareEdit能完成的工作,都可以用StartEdit完成。 示例 假定消费表中还有一个折扣列,我们希望只有经理级别的用户才能编辑该列的数据,如果其他用户试图编辑该列,则给出明确拒绝的提示,为此可在该表的StartEdit事件中输入代码: If e.Col.Name = "折扣" AndAlso User.Group <> "经理" Thene.Cancel = True \'取消编辑 Messagebox.Show("只有经理才能打折!","提示",MessageBoxButtons.OK, MessageBoxIcon.Information) End If 上面的代码如果设置在PrepareEdit事件中,非经理级用户一旦选择折扣列,将不停地出现提示窗口,使得你再也回不到正常的操作界面,你只能借助Foxtable提供的灾难恢复了。 |
-- 作者:zhangc2000 -- 发布时间:2012/7/31 16:40:00 -- 我并是想在程序中修改或编辑数据,我只是想任何人包括开发者在编码调试时都不要损坏数据,需要哪些办法?
谢谢 |
-- 作者:狐狸爸爸 -- 发布时间:2012/7/31 17:19:00 -- 数据不会无缘无故被修改的。 你要任何时候都不能保存,何止每个表的BeforeSaveDataRow事件代码为: e.Cancel = true
参考: http://www.foxtable.com/help/topics/0628.htm |