以文本方式查看主题

-  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("提交完成")

我们是有两个数据源,一个本地,一个服务器,本地生成订单后提交到服务器数据库,这个代码就是用来提交订单的。
代码执行后,本地系统没发现问题,但是服务器数据出现了异常,异常的地方就在标红的这两个字段

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20171011115511.png
图片点击可在新窗口打开查看

如图,所有记录都成功上传,但是【订单状态】和【同步状态】出现了一个订单不同值的情况,根据排查发现是跟本地系统提交数据时,数据表的current有关,current行及后面的行就正常,前面的就不正常,排查代码也没发现什么异常啊,请各位大大看看。

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

试试这样

 
            For Each dc As DataCol In DataTables("订单表").DataCols

                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编辑过]