Foxtable(狐表)用户栏目专家坐堂 → [求助]对后台表添加行代码出错(已解决)


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

主题:[求助]对后台表添加行代码出错(已解决)

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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
[求助]对后台表添加行代码出错(已解决)  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/11 14:10:00 [只看该作者]

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

 

 做个例子发上来测试。


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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2017/8/11 15:53:00 [只看该作者]

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

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



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/11 16:33:00 [只看该作者]

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

 

改成

 

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


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


加好友 发短信
等级:七尾狐 帖子:1525 积分:10580 威望:0 精华:0 注册:2008/9/24 11:16:00
  发帖心情 Post By:2017/8/11 17:11:00 [只看该作者]

谢谢有点甜老师的指教,问题解决,再次衷心感谢!!

 回到顶部