Foxtable(狐表)用户栏目专家坐堂 → 请问什么代码会导致行重复多存了一行?完全一样复制多了一个行,导致数据重复,好奇怪啊


  共有2802人关注过本帖树形打印复制链接

主题:请问什么代码会导致行重复多存了一行?完全一样复制多了一个行,导致数据重复,好奇怪啊

帅哥哟,离线,有人找我吗?
chen37280600
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1265 积分:7838 威望:0 精华:4 注册:2017/12/31 14:53:00
请问什么代码会导致行重复多存了一行?完全一样复制多了一个行,导致数据重复,好奇怪啊  发帖心情 Post By:2019/1/22 10:38:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看


1张主表+2张子表的架构。1年内出现10多次这样的情况。从一开始以为是重复派编号(http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=127231&replyID=&skin=1
到后来发现是重复保存导致的,贴出BeforeSaveDataRow的代码。如果要更多代码,请客服联系我。我已经做了好多好多项目,也就这个模块会出现重复,太奇怪了。


CarFixAddTime的获取方法:向服务器通过  Select GetDate() 获取,在DataRowAdding事件里


BeforeSaveDataRow:
'-----必填检测-----
If e.DataRow.IsNull("CompanyID") OrElse e.DataRow.IsNull("CarFixID")  Then '判断是否不符合验证要求
    e.Cancel = True '取消存盘
    Return
End If
'-----必填检测-----



e.DataRow("CarFixLastEditUser") = PublicMHUserID
e.DataRow("CarFixLastEditTime")= Functions.Execute("SqlDate")

'数值列若为空自动填0---
Dim dls As new  List (of String )
dls.Add("CarFixItemCost")
dls.Add("CarFixTotalPrice")
dls.Add("CarFixLossPrice")
dls.Add("CarFixCommission")
dls.Add("CarFixTax")
dls.Add("CarFixWorkCost")
dls.Add("CarFixPayCash")
dls.Add("CarFixPayBank")
dls.Add("CarFixPayAli")
dls.Add("CarFixPayWechat")

For Each d As String In dls
    If e.DataRow.IsNull(d) Then
        e.DataRow(d) =0
    End If
Next
'数值列若为空自动填0---

Functions.Execute("EndMyEdit",e.DataRow)



[此贴子已经被作者于2019/1/22 10:42:34编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/22 10:51:00 [只看该作者]

 

重复的数据,每一列的数据都相同?如果是这样,而发生的几率又不大的话,你写sql代码,定期删除重复数据,即可。

 

这个问题,很难发现错误的。因为不知道什么时候产生,无法测试。

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
chen37280600
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1265 积分:7838 威望:0 精华:4 注册:2017/12/31 14:53:00
回复:(有点甜)?重复的数据,每一列的数据都...  发帖心情 Post By:2019/1/22 10:59:00 [只看该作者]

确实是每一列都相同。明摆就是新建后,第一次保存时产生的重复。后续再修改也不会再产生重复了。
由于CarFixAddTime是新建时自动获取且不允许修改,这个字段重复,而其他能被修改的字段没出现重复,更加让我确定是这个情况。
[此贴子已经被作者于2019/1/22 10:59:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
chen37280600
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1265 积分:7838 威望:0 精华:4 注册:2017/12/31 14:53:00
回复:(有点甜) 重复的数据,每一列的数据都...  发帖心情 Post By:2019/1/22 11:05:00 [只看该作者]

其实最关键在于我并没有这样重复新建行,并且遍历重复赋值的代码。但是它居然可以获取到上一行的全部数据,感觉是狐表的底层触发的问题

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/22 11:13:00 [只看该作者]

DataRowAdding事件写到DataRowAdded去试试。

 

这个问题无法测试和处理的,因为不明确,只能变通的处理。


 回到顶部
帅哥哟,离线,有人找我吗?
chen37280600
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1265 积分:7838 威望:0 精华:4 注册:2017/12/31 14:53:00
回复:(有点甜)DataRowAdding事件写到DataRowAdded去...  发帖心情 Post By:2019/1/22 11:34:00 [只看该作者]

好吧,我先试试,看下能不能解决问题

 回到顶部
帅哥哟,离线,有人找我吗?
873773115
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:292 积分:2722 威望:0 精华:0 注册:2017/11/5 13:39:00
  发帖心情 Post By:2020/3/2 11:43:00 [只看该作者]

这个问题解决了吗?  我的是有一两个模块   自动出现重复  在系统操作的时候一切正常,只要一保存,后台就出现一模一样的两份数据    其他模块就没有这个问题   快愁死了

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106731 积分:542850 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/3/2 11:52:00 [只看该作者]

以下是引用873773115在2020/3/2 11:43:00的发言:
这个问题解决了吗?  我的是有一两个模块   自动出现重复  在系统操作的时候一切正常,只要一保存,后台就出现一模一样的两份数据    其他模块就没有这个问题   快愁死了

贴出具体代码,或者上传实例说明

 回到顶部