VB6 - 未添加到集合的项目

时间:2013-08-21 13:00:30

标签: vb6

我在构建数据集时遇到问题。问题代码如下:

    'Basic defitions are as follows:
     Private mCol As Collection
     Dim mcnn As ADODB.Connection
     Dim mrs As New ADODB.Recordset

     Dim uCustomClass As CustomClass
     On Error GoTo 0
     'set Find to false to catch any errors
     Find = False
     'checks for an active connection and then..
     Set mCol = Nothing
     Set mCol = New Collection
     With mrs
     .Open AN_SQL_SELECT_STATEMENT , mcnn, adOpenForwardOnly, adLockOptimistic
     While Not .EOF
        Set uCustomClass = New CustomClass
        Set uCustomClass.Connection = mcnn
        uCustomClass.CustomerName = NullToEquiv(.Fields("customer_name").Value,NULL_STRING)
        uCustomClass.NumberOfOrders = NullToEquiv(.Fields("num_of_orders").Value, NULL_LONG)
        uCustomClass.FavoriteColour = NullToEquiv(.Fields("favorite_colour").Value, NULL_STRING)

        'Cache orginal values in case the keys change
        uCustomClass.CacheOriginalValues
        'add to collection
        mCol.Add uCustomClass
        .MoveNext
    Wend

现在运行时的结果是uCustomClass树结构如下所示:

    -uCustomClass
       +connection
        count
       + mcnn
       -mCol
          +Item1
          +Item2
          +Item3      
       +mrs
        mvarChangedCount
       +NewEnum

这一切都很好吧我没有直接在uCustomClass下获得Item1,Item2和Item3,而只是在mCol中。我似乎是在其他地方为不同的自定义类运行的完全相同的代码,我得到了我想要的东西,例如。

    -uCustomClassThatWorks
        +connection
         count
        + mcnn
        -mCol
           +Item1
           +Item2
           +Item3      
        +mrs
        mvarChangedCount
        +NewEnum
        +Item1
        +Item2
        +Item3

可能存在问题的任何想法?

1 个答案:

答案 0 :(得分:1)

不确定uCustomClass如何添加这些项目。是否有一些丢失的代码?

值得一提的是,集合不能多次使用相同的密钥,这可以解释为什么它们可以添加到一个区域中,但不能再次添加。可能有些东西甚至会修剪字符串或会加剧情况。因此,请确保您的密钥是唯一的。