Foxtable(狐表)用户栏目专家坐堂 → [求助]同步更新遇到困难了


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

主题:[求助]同步更新遇到困难了

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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
[求助]同步更新遇到困难了  发帖心情 Post By:2015/7/18 19:20:00 [显示全部帖子]

   Dim r As Row = Tables("BUG录入表").Current

 If r.DataRow.GetChildRows("BUG研发表").Count = 0 Then
            Dim dr As DataRow = DataTables("BUG研发表").AddNew()
            dr("BUG_ID") = r("BUG_ID")
            MessageBox.show("BUG编号:" & r("BUG_ID") & "此BUG故障已通知研发,请静静的耐心等待研发解决!","博达BUG综合管理系统")
        ElseIf r.DataRow.GetChildRows("BUG研发表").Count > 0  Then
            Dim rr As Row = Tables("BUG录入表").Current
            Dim fl As String = "BUG_ID = '"  & r("BUG_ID") & "'"
            rr.Load() '加载父行
            LockBaseMainForm() '锁定主窗口
            DataTables("BUG研发表").StopRedraw '停止绘制订单明细
            DataTables("BUG研发表").RemoveFor(fl) '移除当前订单的订单明细
            DataTables("BUG研发表").Appendload(fl) '追载当前订单的订单明细
            DataTables("BUG研发表").ResumeRedraw '恢复绘制订单明细
            UnLockBaseMainForm() '解锁主窗口
            MessageBox.show("BUG编号:" & r("BUG_ID") & "此BUG故障信息已修改,并通知研发,请静静的耐心等待研发解决!","博达BUG综合管理系统")
        End If

 

我是按照帮助来做的。可是效果不对。

比如BUG_ID 为201507018的数据。提交后。然后再次在BUG录入表修改BUG_ID201507018的数据,又再次提交。

问题来了,怎么在BUG研发表又增加了一行同样是是BUG_ID为201507018的数据(修改后的),也就是说在BUG研发表存在2个BUG_ID201507018的数据。

本意是希望是同步更新,而不是新增加行。


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/7/19 12:56:00 [显示全部帖子]


        If r.DataRow.GetChildRows("BUG研发表").Count = 0 Then
            Dim dr As DataRow = DataTables("BUG研发表").AddNew()
            dr("BUG_ID") = r("BUG_ID")
            MessageBox.show("BUG编号:" & r("BUG_ID") & "此BUG故障已通知研发,请静静的耐心等待研发解决!","博达BUG综合管理系统")
        End If
        Dim rr As Row = Tables("BUG录入表").Current
        Dim s As String = "BUG_ID = '" & rr("BUG_ID") & "'"
        Dim fr As DataRow = DataTables("BUG研发表").SQLFind(s)
        If fr IsNot Nothing Then
            rr.Load() '加载父行
            LockBaseMainForm() '锁定主窗口
            DataTables("BUG研发表").StopRedraw '停止绘制订单明细
            DataTables("BUG研发表").RemoveFor(s) '移除当前订单的订单明细
            DataTables("BUG研发表").Appendload(s) '追载当前订单的订单明细
            DataTables("BUG研发表").ResumeRedraw '恢复绘制订单明细
            UnLockBaseMainForm() '解锁主窗口
            MessageBox.show("BUG编号:" & r("BUG_ID") & "此BUG故障信息已修改,并通知研发,请静静的耐心等待研发解决!","博达BUG综合管理系统")
        End If
    End If

红色的代码应该还是有问题。BUG研发表还是增加了新的行,并不是把原来的数据更新。

请大师再帮我瞅瞅。


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/7/19 16:53:00 [显示全部帖子]

以下是引用程兴刚在2015/7/19 13:56:00的发言:

不绕这些弯路,效果一样:

 

 

If Tables("BUG录入表").Current IsNot Nothing    
    Dim r As Row = Tables("BUG录入表").Current  
    Dim dr As DataRow = DataTables("BUG研发表").find("BUG_ID = '" & r("BUG_ID") & "'")
    If dr Is Nothing
        dr = DataTables("BUG研发表").AddNew()
    End If
    dr("BUG_ID") = r("BUG_ID")

    dr.save()

    r.save() '加载父行
    MessageBox.show("BUG编号:" & r("BUG_ID") & "此BUG故障已通知研发,请静静的耐心等待研发解决!","博达BUG综合管理系统")
 End If

[此贴子已经被作者于2015/7/19 13:59:43编辑过]

程老师,你这个好像只能对BUG录入表的数据生效。但是BUG研发表的数据并没有修改,还是之前的。


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/7/19 17:16:00 [显示全部帖子]

.NET Framework 版本:2.0.50727.8009
Foxtable 版本:2014.11.11.1
错误所在事件:
详细错误信息:
列“_Identify”被约束为是唯一的。值“28”已存在。

报上面的错。


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/7/19 17:25:00 [显示全部帖子]

以下是引用大红袍在2015/7/19 17:22:00的发言:
 实例发上来

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:临时版本跟踪系统1225.rar

密码liujy。

在BUG录入系统界面。代码在提交按钮里面。

步骤,第一次正常提交。完了后点击修改,随便改某一个列的值,再次提交。就出险这个错误了。


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/7/19 17:35:00 [显示全部帖子]

奇怪了。我重新打开项目。也确实没有报错。

但是发现BUG研发表的数据没有同步更新(同一个BUG_ID)


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/7/19 17:45:00 [显示全部帖子]

以下是引用大红袍在2015/7/19 17:39:00的发言:

加一句代码试试

 

DataTables("BUG研发表").Save

好像没用。


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


加好友 发短信
等级:五尾狐 帖子:1165 积分:8129 威望:0 精华:0 注册:2015/3/30 10:44:00
  发帖心情 Post By:2015/7/19 18:14:00 [显示全部帖子]

以下是引用大红袍在2015/7/19 18:08:00的发言:

 

 你说的没有同步更新是什么意思?修改的数据没有保存?不可能啊

就是在BUG录入表改了一列的值,但是在BUG研发表这一列的值并没有同步修改过来。

BUG录入表的改了。BUG研发表的没有改。

你可以测试一下。

[此贴子已经被作者于2015/7/19 18:14:57编辑过]

 回到顶部