当前位置: 代码迷 >> GIS >> 急当拷贝一个要素时,为什么在vb.net中会出错,而在VB中不出错?该如何解决
  详细解决方案

急当拷贝一个要素时,为什么在vb.net中会出错,而在VB中不出错?该如何解决

热度:217   发布时间:2016-05-05 06:33:49.0
急急,当拷贝一个要素时,为什么在vb.net中会出错,而在VB中不出错?
private   sub   copyAttribute(byref     pTargetClass   as   IFeatureClass,byval   pSourceFeature   as   IFeature)  
    Dim   i   As   Long
      Dim   lValueIndex   As   Long
    Dim   lNewIndex   As   Long
    Dim   pBuffer   As   IFeatureBuffer
    Dim   pInsert   As   IFeatureCursor
    Set   pInsert   =   pTargetClass.Insert(True)
   
        Set   pBuffer   =   pTargetClass.CreateFeatureBuffer
        pBuffer.Shape   =   pSourceFeature.ShapeCopy
       
        For   i   =   0   To   pSourceFeature.Fields.FieldCount   -   1
            If   ((pSourceFeature.Fields.Field(i).Type   <>   esriFieldTypeOID)   And   _
                    (pSourceFeature.Fields.Field(i).Type   <>   esriFieldTypeGeometry))   Then
                lValueIndex   =   pSourceFeature.Fields.FindField(pSourceFeature.Fields.Field(i).Name)
                lNewIndex   =   pBuffer.Fields.FindField(pSourceFeature.Fields.Field(i).Name)
               
                pBuffer.Value(lNewIndex)   =   pFeature.Value(lValueIndex) '当某些字段值为空时,出错
            End   If
        Next   i
       
        pInsert.InsertFeature   pBuffer

    pInsert.Flush

end   sub

------解决方案--------------------
可以用IIf函数做个判断阿
pBuffer.Value(lNewIndex) =IIf (pFeature.Value(lValueIndex) is null or pFeature.Value(lValueIndex) = "" ,null,pFeature.Value(lValueIndex) )

  相关解决方案