以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- ExecuteReader的一个问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=107845) |
-- 作者:huangxueyao -- 发布时间:2017/10/11 12:02:00 -- ExecuteReader的一个问题 Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SEL ECT * From {订单表}" dt = cmd.ExecuteReader(True) \'只有设置了true才可以保存数据 If dt.Find("订单编号 = \'" & tr("订单编号") & "\'") IsNot Nothing Then MessageBox.show("PMC后台已存在此订单") Return Else Dim drs As List(of DataRow) drs = DataTables("订单表").Select("订单编号 = \'" & tr("订单编号") & "\'") For Each dr As DataRow In drs Dim nr As DataRow = dt.AddNew() dr("订单状态") = "已提交PMC" \'要放在前面,不然上传后的订单状态就还是门店新订单了 dr("同步状态") = "已同步" For Each dc As DataCol In DataTables("订单表").DataCols nr(dc.name) = dr(dc.name) Next Next End If dt.save DataTables("订单表").save MessageBox.show("提交完成") 我们是有两个数据源,一个本地,一个服务器,本地生成订单后提交到服务器数据库,这个代码就是用来提交订单的。 代码执行后,本地系统没发现问题,但是服务器数据出现了异常,异常的地方就在标红的这两个字段 如图,所有记录都成功上传,但是【订单状态】和【同步状态】出现了一个订单不同值的情况,根据排查发现是跟本地系统提交数据时,数据表的current有关,current行及后面的行就正常,前面的就不正常,排查代码也没发现什么异常啊,请各位大大看看。
|
-- 作者:有点甜 -- 发布时间:2017/10/11 12:29:00 -- 试试这样 nr(dc.name) = dr(dc.name)
Next
dr("订单状态") = "已提交PMC" \'要放在前面,不然上传后的订单状态就还是门店新订单了 dr("同步状态") = "已同步"
|
-- 作者:huangxueyao -- 发布时间:2017/10/11 13:21:00 -- 确实只能这样处理了,先原封不动复制,再进行更改。 这是不是个BUG?
|
-- 作者:有点甜 -- 发布时间:2017/10/11 14:27:00 -- 你的表【订单表】有字段【订单状态】字段吗?如果有,应该是你的表的数据有问题,其值可能是【门店新订单】 [此贴子已经被作者于2017/10/11 14:27:31编辑过]
|