public void Join(ILayer layer, ITable table, string field1, string field2)
{
IFeatureLayer f = layer as IFeatureLayer;
IFeatureClass ifc = f.FeatureClass;
//join
IMemoryRelationshipClassFactory pMemRelClassFactory = new MemoryRelationshipClassFactoryClass();
IRelationshipClass pRelaClass = pMemRelClassFactory.Open("JOIN", ifc, field1, (IObjectClass)table, field2, "forward", "backward", esriRelCardinality.esriRelCardinalityOneToOne);
IDisplayRelationshipClass pDisplayRelationshipC = f as IDisplayRelationshipClass;
pDisplayRelationshipC.DisplayRelationshipClass(pRelaClass, esriJoinType.esriLeftInnerJoin);
IDisplayTable displaytable = pDisplayRelationshipC as IDisplayTable;
//IFeatureClass outf = displaytable.DisplayTable as IFeatureClass;
//return outf;
//pDisplayRelationshipC.RelationshipClass.DeleteRelationship((IObject)ifc, (IObject)table);
}
public ITable itable()
{
string filePath = @"C:\Users\54061\Desktop\HWSDData\HWSD.mdb";
AccessWorkspaceFactory fac = new AccessWorkspaceFactory();
IFeatureWorkspace pFWS = (IFeatureWorkspace)fac.OpenFromFile(filePath, 0);// 这是用的最多的一种方式.
return pFWS.OpenTable("HWSD_DATA");
}
QQ交流群:607330463 GIS开发技术最强交流群 未经允许 禁止转载 可以参考