以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]对后台表添加行代码出错(已解决)  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=105102)

--  作者:yyzlxc
--  发布时间:2017/8/11 13:30:00
--  [求助]对后台表添加行代码出错(已解决)
下面的代码,当比对“操作信息_时间”不同时,会将“器材明细”表的对应行替换到后台表并保存。设想:如果比对后台表,缺少一行数据时,代码将缺少的这行数据从“器材明细”表添加到后台表中。但是,代码运行出错,后台表没有变化。如何实现这个效果,请各位老师指教.谢谢!!



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


    If DataTables.Contains("器材明细") = True Then
        Dim cmd2 As New SQLCommand
        cmd2.ConnectionName = "SCZD"
        cmd2.CommandText = "Select * F rom {器材明细}"
        Dim dt2 As DataTable = cmd2.ExecuteReader(True)
        For Each dr2 As DataRow In DataTables("器材明细").DataRows
            If dr2.IsNull("器材编号") = False Then
                Dim pr2 As DataRow = dt2.Find("器材编号 = \'" & dr2("器材编号") & "\' and _Identify = \'" & dr2("序号") & "\'")
                If pr2 IsNot Nothing And dr2("操作信息_时间") <> pr2("操作信息_时间") Then \'行存在但操作信息_时间不同
                    \'删除PC端编号行
                    pr2.delete
                    dt2.save
                    \'导出编号行到PC端
                    Dim ndr2 As DataRow = dt2.AddNew
                    For Each dc2 As DataCol In dt2.DataCols
                        ndr2(dc2.name) = dr2(dc2.name)
                    Next
                    dt2.Save
                ElseIf pr2 Is Nothing Then \'当PC端行不存在
                    Dim ndr2 As DataRow = dt2.AddNew
                    For Each dc2 As DataCol In dt2.DataCols
                        ndr2(dc2.name) = dr2(dc2.name)
                    Next
                    dt2.Save
                End If
            End If
        Next
    End If
[此贴子已经被作者于2017/8/11 17:11:34编辑过]

--  作者:有点甜
--  发布时间:2017/8/11 14:10:00
--  

 看了下,代码不应该报错的。

 

 做个例子发上来测试。


--  作者:yyzlxc
--  发布时间:2017/8/11 15:53:00
--  
修改器材明细表的“操作信息_时间”值,运行代码,“器材明细2”表的对应行数值改变。在“器材明细2”表删除一行,运行代码,运行出错。要求是将缺少的这行数据从“器材明细”表添加到“器材明细2”表中。请老师指教代码如何修改,才能达到此效果。谢谢!!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目32.foxdb



--  作者:有点甜
--  发布时间:2017/8/11 16:33:00
--  

If pr2 IsNot Nothing And dr2("操作信息_时间") <> pr2("操作信息_时间") Then \'行存在但操作信息_时间不同

 

改成

 

If pr2 IsNot Nothing AndAlso dr2("操作信息_时间") <> pr2("操作信息_时间") Then \'行存在但操作信息_时间不同


--  作者:yyzlxc
--  发布时间:2017/8/11 17:11:00
--  
谢谢有点甜老师的指教,问题解决,再次衷心感谢!!