AE 导入mdb/gdb/shp时添加Feature要素

IFeatureWorkspace pFeatWorkspace = null;
//ComnLib.OpenFeatureclassDialog.frmGxDialog pGxDialog = new ComnLib.OpenFeatureclassDialog.frmGxDialog();
pGxDialog.Title = "添加数据";
pGxDialog.Filter = "FeatureClass";
pGxDialog.MultSelect = false;
if (pGxDialog.ShowDialog() == DialogResult.OK)
{
string strWsName = pGxDialog.currentPath;//workspace位置
List<string> strFcNames = pGxDialog.FileNames;//featureclass名称
IFeatureClass pfeatureclass = null;
if (pGxDialog.FileType == 1)
{
IWorkspaceFactory pAccessFactory = new AccessWorkspaceFactoryClass();
IWorkspace pWorkspace = pAccessFactory.OpenFromFile(strWsName, 0);
pFeatWorkspace = pWorkspace as IFeatureWorkspace;
}
else if (pGxDialog.FileType == 2)
{
IWorkspaceFactory pAccessFactory = new FileGDBWorkspaceFactoryClass();
IWorkspace pWorkspace = pAccessFactory.OpenFromFile(strWsName, 0);
pFeatWorkspace = pWorkspace as IFeatureWorkspace;
}
else if (pGxDialog.FileType == 0)
{
IWorkspaceFactory workspaceFactory = new ESRI.ArcGIS.DataSourcesFile.ShapefileWorkspaceFactoryClass();
IWorkspace workSpace = workspaceFactory.OpenFromFile(strWsName, 0);
pFeatWorkspace = workSpace as IFeatureWorkspace;
}
if (strFcNames.Count > 0)
{
for (int i = 0; i < strFcNames.Count; i++)
{
pfeatureclass = pFeatWorkspace.OpenFeatureClass(strFcNames[i]);
if (pfeatureclass == null) continue;
string name = pfeatureclass.AliasName;
this.dataGridView1.Rows.Add(strFcNames[i], strWsName + "\\" + strFcNames[i]);
dataGridView1.Rows[i].Tag = pfeatureclass;
}
}

this.dataGridView1.Refresh();
}

posted @ 2014-11-26 13:12  wangyong_h  阅读(520)  评论(0)    收藏  举报