以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 二进制列的多文件管理中的错误 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62355) |
-- 作者:liu_songsong -- 发布时间:2014/12/30 14:07:00 -- 二进制列的多文件管理中的错误 由于“新增行的_Identify列的内容是临时性的,保存的时候,_Identify列会重新生成一个值” 如果临时的_Identify值在“附件”表的“员工编号”中已经存在,会发生改变导致错误。
比如新增一行后_Identify=1,增加照片后,附件表员工编号=1, 重新打开系统,在不加载数据的情况下,新增加1行生成临时_Identify=1, 保存时_Identify=2,同时原来第一行的员工编号变成了2(原本第一行员工的照片变成第二行员工的照片)。 如何处理? |
-- 作者:Bin -- 发布时间:2014/12/30 14:09:00 -- 保存的时候,才会生成真正的_IDentify 新增的时候只是临时的 |
-- 作者:liu_songsong -- 发布时间:2014/12/30 14:26:00 -- 在临时的改变成真正的_IDentify 时 ,会导致“附件”表的“员工编号”的变化,而导致附件中的本来其他员工的照片变成新增加员工的。 |
-- 作者:有点甜 -- 发布时间:2014/12/30 15:06:00 -- 以下是引用liu_songsong在2014-12-30 14:26:00的发言:
在临时的改变成真正的_IDentify 时 ,会导致“附件”表的“员工编号”的变化,而导致附件中的本来其他员工的照片变成新增加员工的。
在DataRowAdded事件,写入代码
e.DataRow.Save |
-- 作者:liu_songsong -- 发布时间:2014/12/30 18:26:00 -- 非常感谢!这个问题解决了,但是保存之前做的判断,比如姓名不为空等就不能使用了。 如何处理?感谢 |
-- 作者:有点甜 -- 发布时间:2014/12/30 19:19:00 -- SystemReady = False
http://www.foxtable.com/help/topics/2218.htm
|
-- 作者:liu_songsong -- 发布时间:2014/12/30 20:17:00 -- 按照帮助理解应该是可以实现,但是测试中还是执行了beforesavedatarow的判断代码 |
-- 作者:有点甜 -- 发布时间:2014/12/30 20:20:00 -- 以下是引用liu_songsong在2014-12-30 20:17:00的发言:
按照帮助理解应该是可以实现,但是测试中还是执行了beforesavedatarow的判断代码
那就定义一个变量,赋值,然后在beforesavedatarow里面判断,某值的时候,不执行检测的代码。 |
-- 作者:liu_songsong -- 发布时间:2014/12/30 21:06:00 -- 感谢有点甜,测试可以。 |