ArcObjects Library Reference  (Location)    

RematchTable_Example

[Visual Basic 6.0]
Public Function GetAttachedLocator(pDataset As esriGeoDatabase.IDataset) As esriLocation.IAttachedLocator
'+++ returns the AttachedLocator for a dataset, if one exists
  Dim pLocatorManager As esriLocation.ILocatorManager
  
  '+++ use a LocatorManager object to retrieve the AttachedLocator for the dataset
  Set pLocatorManager = New esriLocation.LocatorManager
  If pLocatorManager.HasLocatorAttached(pDataset.FullName) Then
    Set GetAttachedLocator = pLocatorManager.GetLocatorFromDataset(pDataset)
  End If
  
End Function

[Visual Basic .NET]

    Sub RematchTableSample()
        ' Open a workspace from a file geodatabase
        Dim obj As System.Object = Activator.CreateInstance(Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory"))
        Dim workspaceFactory As IWorkspaceFactory2 = obj
        Dim featureWorkspace As IFeatureWorkspace = workspaceFactory.OpenFromFile("C:\UnitedStates.gdb", 0)

        ' Open the Feature Class to rematch
        Dim featureClass As IFeatureClass = featureWorkspace.OpenFeatureClass("US_Locations")

        ' Get the Locator that is attached to the Feature Class
        obj = Activator.CreateInstance(Type.GetTypeFromProgID("esriLocation.LocatorManager"))
        Dim locatorManager As ILocatorManager2 = obj
        Dim attachedLocator As IAttachedLocator = locatorManager.GetLocatorFromDataset(featureClass)
        Dim advancedGeocoding As IAdvancedGeocoding = attachedLocator.Locator

        ' Modify the geocoding properties on the Locator and rematch the Feature Class
        Dim geocodingProperties As IGeocodingProperties = advancedGeocoding
        geocodingProperties.MinimumMatchScore = 100
        With attachedLocator
            advancedGeocoding.RematchTable(.InputTable, .InputFieldNamesList, .InputJoinFieldName, .OutputTable, _
                                            .OutputFieldNamesList, .OutputJoinFieldName, "", Nothing)
        End With
    End Sub

[C#]

        public void RematchTable()
        {
            // Get the Workspace
            System.Object obj = Activator.CreateInstance(Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory"));
            IWorkspaceFactory2 workspaceFactory = obj as IWorkspaceFactory2;
            IWorkspace workspace = workspaceFactory.OpenFromFile(@"C:\UnitedStates.gdb", 0);

            // Open the feature class of geocoded addresses that you will rematch
            IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)workspace;
            IFeatureClass featureClass = featureWorkspace.OpenFeatureClass("US_Locations");

            // Get the locator that is attached to the feature class
            obj = Activator.CreateInstance(Type.GetTypeFromProgID("esriLocation.LocatorManager"));
            ILocatorManager locatorManager = obj as ILocatorManager2;
            IAttachedLocator attachedLocator = null;
            IAdvancedGeocoding2 advancedGeocoding = null;
            IDatasetName datasetName = (featureClass as IDataset).FullName as IDatasetName;
            if (locatorManager.HasLocatorAttached(datasetName))
            {
                attachedLocator = locatorManager.GetLocatorFromDataset((IDataset)featureClass);
                advancedGeocoding = (IAdvancedGeocoding2)attachedLocator.Locator;
            }

            // Modify the Geocoding properties on the locator and rematch the feature class
            IGeocodingProperties geocodingProperties = (IGeocodingProperties)advancedGeocoding;
            geocodingProperties.MinimumMatchScore = 100;
            advancedGeocoding.RematchTable(attachedLocator.InputTable, attachedLocator.InputFieldNamesList,
                attachedLocator.InputJoinFieldName, (IFeatureClass)attachedLocator.OutputTable,
                attachedLocator.OutputFieldNamesList, attachedLocator.OutputJoinFieldName, "", null);
        }