以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  SQLSELECT 与addnew冲突?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=196210)

--  作者:lur320
--  发布时间:2025/4/9 11:10:00
--  SQLSELECT 与addnew冲突?
 下面这段代码很奇怪,如何修改?

        Dim drcs As New List(Of DataRow)
        drcs = DataTables("产品检验放行状态").sqlse ect("批号=\'" & e.Row("批号") & "\'")   筛选后台的清单
        If drcs.Count = 0 Then
            Dim drc1 As DataRow
          。。。。。。。。
            drc1.save
        Else
            For Each drk As DataRow In drcs
                If drk.IsNull("成品编码") Then
             。。。。。。
                    drk("un包装规格") = e.Row("un包装规格")
                    drk.save
                End If
                If drk.IsNull("成品编码") = False AndAlso drk("un包装规格") <> e.Row("un包装规格") Then
                    Dim drc As DataRow                   
                    drc = DataTables("产品检验放行状态").AddNew
                    drc("批号") = e.Row("批号")
                    drc("成品描述") = e.Row("成品描述")
                    drc("实际出报告时间") = drk("实际出报告时间")
                    drc("备注") = drk("备注")
                    drc("QA接收时间") = drk("QA接收时间")
                    drc("QA放行时间") = drk("QA放行时间")
                    drc.save     这里出了问题,运行到这边后,table表格里面的确存在新创建的表,即drc都在,行状态也是正常,但是后台没有,一旦重新点击菜单,由drc增加的行就消失了。后台也没有。是否sqlselect与相同表格的addnew冲突?怎么改?
                End If
            Next
        
        
       

--  作者:有点蓝
--  发布时间:2025/4/9 11:20:00
--  
drc.save应该不会有问题,除非表格有其它事件影响了

倒是sqlselect查询的行必须通过SQLUpdate才能保存,不能直接保存:http://www.foxtable.com/webhelp/topics/2901.htm

--  作者:lur320
--  发布时间:2025/4/9 11:26:00
--  
检查了下,表格没有其他代码了。并且这个代码是在afteredit里面,不是datarow changed里面。

现在不清楚的原因就是: sqlselect 的for each 循环里面,再次对本表的datatable.addnew. 会不会冲突。
[此贴子已经被作者于2025/4/9 11:28:06编辑过]

--  作者:有点蓝
--  发布时间:2025/4/9 11:30:00
--  
不会有冲突。找不到原因可以上传实例测试
--  作者:lur320
--  发布时间:2025/4/9 11:36:00
--  
 我的问题。我只加载了10行。。。。都在都在