错误信息如下:   实时错误‘457’
   该键已同该集合中的一个元素相关联怎么解决啊?

解决方案 »

  1.   

    我的代码量很大
    '¸ù¾ÝID»ñÈ¡Êý¾Ý,""´ú±íÉÐ믧´æ´ËÊý¾Ý»òÒѾ­ÎÞЧ
    Public Function getData(id As String) As String
        If capacity = 0 Then
            getData = ""
            Exit Function
        End If
        
        Dim obj As CacheObj
        Dim data As String
        
        data = ""
        
        On Error GoTo err0
        
        obj = objs.Item(id)
       
        '´Ë¶ÔÏóÓÀ²»³¬Ê±
        If obj.GetLimitTime() = 0 Then
            data = obj.getData()
        '´Ë¶ÔÏóÔÚÉú´æÆÚÄÚ
        ElseIf DateDiff("n", obj.getFirst(), Now) < obj.GetLimitTime() Then
            data = obj.getData()
        Else
        '&para;&Ocirc;&Iuml;ó&sup3;&not;&sup3;&ouml;&Eacute;ú&acute;&aelig;&AElig;&Uacute;
            data = ""
            removeData (id)
        End If
        
        If data <> "" Then
            obj.setAccess (Now)
        End If
        
        getData = data
        Exit Function
            
    err0: '&Eacute;&ETH;&Icirc;&acute;&raquo;&ordm;&acute;&aelig;&acute;&Euml;&para;&Ocirc;&Iuml;ó
        getData = ""
        
    End Function'&raquo;&ordm;&acute;&aelig;&para;&Ocirc;&Iuml;ó
    Public Sub setData(id As String, data As String, first As Date, limit As Integer)
        If capacity = 0 Then
            Exit Sub
        End If
        
        Dim obj As CacheObj
        
        On Error GoTo err0
        
        '&acute;&Euml;&para;&Ocirc;&Iuml;ó&Ouml;&reg;&Ccedil;°&raquo;&ordm;&acute;&aelig;&sup1;&yacute;
        obj = objs.Item(id)
        removeData (id)
        
    err0: '&Ouml;&reg;&Ccedil;°&Atilde;&raquo;&Oacute;&ETH;&raquo;&ordm;&acute;&aelig;&sup1;&yacute;&acute;&Euml;&para;&Ocirc;&Iuml;ó
        Do While getLength(data) + getSize() > getCapacity() * 2 ^ 20 And objs.Count > 0
            obj = getToBeRemoved()
            objs.Remove (getIndexByObj(obj))
            size = size - getLength(obj.getData())
        Loop
            
        Set obj = New CacheObj
        obj.setFirst (first)
        obj.setAccess (Now)
        obj.setData (data)
        obj.setLimitTime (limit)
        
        objs.Add obj, id
        size = size + getLength(data)
    End Sub
      

  2.   

    我先调用setData方法,把一个键相关联的值缓存起来,之后再读取这个键值用getData方法,就抱错了。
      

  3.   

    代码中的objs是一个Collection,存放的是对象CacheObj
      

  4.   

    冒似贴错了代码。cacheObj 是你自己定义的类吧,错误应该是在类中发生。你应该是跟踪进入类看看如果类没有代码只有 dll,那就不好说了。