以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  数组还是集合。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=98988)

--  作者:huhu
--  发布时间:2017/4/10 18:44:00
--  数组还是集合。
If dt.Rows.Count = 0 Then
                                Dim sql As String = "insert into [BDU8差值可用数量表] (物料编码,BD数量,U8数量,BD可用数量,BD结存数量,差值,库位类别) values(\'" & strn1.ToString() & "\' ,\'" & dr("数量").ToString() & "\',\'" & dr("U8数量").ToString() & "\' ,\'" & dr("数量差量").ToString() & "\',\'" & dr("数量差量").ToString() & "\', \'" & dr("数量差量").ToString() & "\', \'" & dr("U8库位类别").ToString() & "\')"
                                Dim sqlhelp As New SqlHelper
                                sqlhelp.ExecAddDelU pdateNo(sql, CommandType.Text)
                            Else
                                MsgBox(0)----弹出了0.
                                Dim drs As DataRow() = dt.S elect("物料编码=\'" & dr("物料编码").ToString() & "\' and 库位类别 = \'" & dr("U8库位类别").ToString() & "\' ")----这么写是数组,是不是每个数组元素就是dt符合条件的行mr?
                                MsgBox(drs.Length)-----也弹出了0,可表dt肯定是有数据的啊,至少是一行,弹出也应该是1才对。
                                For Each mr As DataRow In drs-------也就是没找到dt的行mr
                                    If dr("数量差量") > mr("BD结存数量") Then
                                        MsgBox(dr("数量差量"))
                                        Dim sql As String = "U pdate [BDU8差值可用数量表] Set BD可用数量 = BD可用数量 + \'" & dr("数量差量").ToString() & "\' - \'" & mr("BD结存数量").ToString() & "\', BD结存数量 = \'" & dr("数量差量").ToString() & "\', 差值=\'" & dr("数量差量").ToString() & "\', BD数量 = \'" & dr("数量").ToString() & "\', U8数量 = \'" & dr("U8数量").ToString() & "\'"
                                        Dim sqlHelp As New SqlHelper
                                        sqlHelp.ExecAddDelU pdateNo(sql, CommandType.Text)
                                    ElseIf dr("数量差量").ToString() < mr("BD结存数量").ToString() And dr("数量差量").ToString() > mr("BD可用数量").ToString() Then
                                        Dim sql As String = "U pdate [BDU8差值可用数量表] Set BD结存数量 =\'" & dr("数量差量").ToString() & "\',差值=\'" & dr("数量差量").ToString() & "\',BD数量 = \'" & dr("数量").ToString() & "\', U8数量 = \'" & dr("U8数量").ToString() & "\'"
                                        Dim sqlHelp As New SqlHelper
                                        sqlHelp.ExecAddDelU pdateNo(sql, CommandType.Text)
                                    ElseIf dr("数量差量").ToString() < mr("BD结存数量").ToString() And dr("数量差量").ToString() < mr("BD可用数量").ToString() Then
                                        Dim sql As String = "U pdate [BDU8差值可用数量表] Set BD可用数量 =\'" & dr("数量差量").ToString() & "\'BD结存数量 =\'" & dr("数量差量").ToString() & "\' 差值=\'" & dr("数量差量").ToString() & "\' BD数量 = \'" & dr("数量").ToString() & "\' U8数量 = \'" & dr("U8数量").ToString() & "\'"
                                        Dim sqlHelp As New SqlHelper
                                        sqlHelp.ExecAddDelU pdateNo(sql, CommandType.Text)
                                    End If
                                Next
                            End If
[此贴子已经被作者于2017/4/10 18:45:05编辑过]

--  作者:有点蓝
--  发布时间:2017/4/10 20:31:00
--  
用法没有问题。dt有数据,不代表有符合条件的数据