以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]非关联表数据更新  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=23403)

--  作者:lxhmax
--  发布时间:2012/9/11 14:16:00
--  [求助]非关联表数据更新

Select Case e.DataCol.name
    Case "样品编号"
        Dim dr As DataRow = DataTables("出入库登记表").Find("样品编号 = \'" & e.OldValue & "\'")
        If dr Is Nothing Then
            dr = DataTables("出入库登记表").AddNew()
            dr("样品编号") = e.DataRow("样品编号")
            dr("委托编号") = e.DataRow("委托编号")
            dr("样品名称") = e.DataRow("样品名称")
            dr("受检单位") = e.DataRow("受检单位")
            dr("随样附件") = e.DataRow("随样附件")
            dr("样品数量") = e.DataRow("样品数量")
            dr("保存条件") = e.DataRow("保存条件")
            dr("样品状态") = e.DataRow("样品状态")
            dr("委托日期") = e.DataRow("委托日期")
        Else
            dr("样品编号") = e.DataRow("样品编号")
        End If
    Case "委托编号","样品名称","受检单位","随样附件","样品数量","保存条件","样品状态","委托日期"
        Dim dr As DataRow = DataTables("出入库登记表").Find("样品编号 = \'" & e.DataRow("样品编号") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select

 

请问下,这段代码有问题吗?

当我添加第一条数据的时候在出入库表能正常添加

当我添加第二条及更多条数据的时候刚才增加的第一条数据,除了委托编号,样品编号,保存条件,跟样品状态还有数据外,其他引用的数据都清空了!

这是咋回事了~


--  作者:狐狸爸爸
--  发布时间:2012/9/11 14:38:00
--  
Select Case e.DataCol.name
    Case "样品编号"
        Dim dr As DataRow = DataTables("出入库登记表").Find("样品编号 = \'" & e.OldValue & "\'")
        If dr Is Nothing Then
            dr = DataTables("出入库登记表").AddNew()
        End If
        dr("样品编号") = e.DataRow("样品编号")
        dr("委托编号") = e.DataRow("委托编号")
        dr("样品名称") = e.DataRow("样品名称")
        dr("受检单位") = e.DataRow("受检单位")
        dr("随样附件") = e.DataRow("随样附件")
        dr("样品数量") = e.DataRow("样品数量")
        dr("保存条件") = e.DataRow("保存条件")
        dr("样品状态") = e.DataRow("样品状态")
        dr("委托日期") = e.DataRow("委托日期")
    Case "委托编号","样品名称","受检单位","随样附件","样品数量","保存条件","样品状态","委托日期"
        Dim dr As DataRow = DataTables("出入库登记表").Find("样品编号 = \'" & e.DataRow("样品编号") & "\'")
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select