以文本方式查看主题 - 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 -- [求助]对后台表添加行代码出错(已解决) 下面的代码,当比对“操作信息_时间”不同时,会将“器材明细”表的对应行替换到后台表并保存。设想:如果比对后台表,缺少一行数据时,代码将缺少的这行数据从“器材明细”表添加到后台表中。但是,代码运行出错,后台表没有变化。如何实现这个效果,请各位老师指教.谢谢!! 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”表中。请老师指教代码如何修改,才能达到此效果。谢谢!!
|
||||
-- 作者:有点甜 -- 发布时间: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 -- 谢谢有点甜老师的指教,问题解决,再次衷心感谢!! |