介绍ArcGIS中各种数据的打开方法——mdb(个人数据库)
3、打开存储在Access GeoDatabase的要素类
使用工作空间打开一个Access库中的一个要素类。
private void OpenWorkspaceFromFileAccess(string clsName, string DBPath)
定义函数OpenWorkspaceFromFileAccess,输入参数包括要素类名和该数据库文件所在的路径,返回值为打开该要素类获得的要素对象FeatureClass。
介绍一种方法
#region 打开个人数据库中的要素
private void 打开个人数据库中的要素toolStripLabel2_Click(object sender, EventArgs e)
{
//方法:
AddMDBFile();
}
/// <summary>
/// 方法:使用工作空间打开一个Access库中的一个要素类
/// </summary>
private void AddMDBFile()
{
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "打开个人数据库";
ofd.Filter = "Personal GDB(*.mdb)|*.mdb";
ofd.InitialDirectory = m_Path;
if (ofd.ShowDialog() != DialogResult.OK)
return;
string DBPath = ofd.FileName;
OpenWorkspaceFromFileAccess("广西师范学院平面图", DBPath);
}
/// <summary>
/// 方法补充:使用工作空间打开一个Access库中的一个要素类
/// </summary>
/// <param name="clsName">文件名</param>
/// <param name="DBPath">文件路径</param>
private void OpenWorkspaceFromFileAccess(string clsName, string DBPath)
{
//排除没有打开指定数据的情况
if(DBPath!=m_Path+"\\Access.mdb")
{
MessageBox.Show("请打开指定数据库!");
return;
}
//新建一个Access的工作空间工厂
IWorkspaceFactory pWorkspaceFactory = new AccessWorkspaceFactoryClass();
IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(DBPath, 0);
IFeatureWorkspace pAccessWorkspace=pWorkspace as IFeatureWorkspace;
IFeatureClass pFeatureClass = pAccessWorkspace.OpenFeatureClass(clsName);
IFeatureLayer pFLayer = new FeatureLayerClass();
pFLayer.FeatureClass = pFeatureClass;
pFLayer.Name = clsName;
this.axMapControl1.AddLayer(pFLayer);
this.axMapControl1.Refresh();
}
#endregion小提示:
AccessWorkspaceFactoryClass 需要引用using ESRI.ArcGIS.DataSourcesFile;
谢谢观看!本人初学GIS二次开发,如果有不对的地方,请多多包涵!
相关推荐
lbyd0 2020-11-17
腾讯soso团队 2020-11-06
yangkang 2020-11-09
KANSYOUKYOU 2020-11-16
wushengyong 2020-10-28
Apsaravod 2020-11-05
PeterChangyb 2020-11-05
gyunwh 2020-11-02