0

我被一个问题难住了,VB 在一个简单的字符串赋值时删除了一行数据。处理循环如下。如果dvData数据视图有 3 行(即为dvData.Count3),则下面的字符串分配导致数据视图丢失一行(即,执行字符串分配后dvData.Count为 2)。更奇怪的是,同样的字符串赋值调用在同一个脚本中多次使用,而不会导致数据行的丢失。

For Each oneShipment As Shipment In DelShipmentsList
    For intRow = 0 To (dvData.Count - 1)

        ' Example: if dvData.Count is 3 at this point, then....
        dvData(intRow)("Result") = "     Receipt Transaction Accepted."
        ' ... now dvData.Count will be 2!

    Next
Next
4

2 回答 2

1

尝试检查该 DataView 对象的 RowFilter 属性。如果是这样,它将解释问题:

dvData.RowFilter = "Result NOT LIKE '*Accepted*'"
于 2013-10-25T19:25:51.183 回答
0

看起来我们找到了答案,尽管这完全出乎意料,值得我们挠头。只是为了明确地明确传递整数和字符串,我让他在适当的地方使用 CStr() 和 CInt()。这是我们发现的:

' This string causes the dataview to change error
dvData(CInt(intRow))(CStr("Result")) = CStr("Receipt Transaction Accepted")

'This string does not.
dvData(CInt(intRow))(CStr("Result")) = CStr("Receipt Transaction Successful")

显然,“接受”这个词有点意思。我们花了很长时间尝试不同的字符串来找出为什么指定的字符串会导致奇怪的行为,否则这些行为仍然无法解释。

于 2013-10-25T18:58:19.433 回答