以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]怎么样防止重复记录  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=146892)

--  作者:rbsoft
--  发布时间:2020/3/5 11:27:00
--  [求助]怎么样防止重复记录
大家好,请教防止数据重复的代码。
现在在表的DataColChanged事件代码如下:

If e.DataCol.Name = "完成" AndAlso e.DataRow("完成") = True Then
     Dim dr As DataRow = DataTables("当日业务").AddNew
     For Each dc As DataCol In DataTables("当日业务").DataCols
         dr(dc.Name) = e.DataRow(dc.Name)
         DataTables("当日业务").Save()
     Next
e.DataRow.delete
End If

当前表字段的值为:完成,将数据复制到另外一个表表名:当日业务。
但是如果是电脑突然关闭或者程序异常退出,就会在当日业务表中产生相同的两条重复数据。
[此贴子已经被作者于2020/3/5 11:28:04编辑过]

--  作者:有点蓝
--  发布时间:2020/3/5 12:04:00
--  
If e.DataCol.Name = "完成" AndAlso e.DataRow("完成") = True Then
     Dim dr As DataRow = DataTables("当日业务").Find("编号=\'" & e.DataRow("编号")  & "\'")
    if dr is nothing then dr = DataTables("当日业务").AddNew
     For Each dc As DataCol In DataTables("当日业务").DataCols
         dr(dc.Name) = e.DataRow(dc.Name)
     Next
     DataTables("当日业务").Save()
e.DataRow.delete
End If