ArcEngine中打开各种数据源(WorkSpace)的连接

1.创建workspacefactory

 //方式1
 Type factoryShpType = Type.GetTypeFromProgID("esriDataSourcesFile.ShapefileWorkspaceFactory");//Shp
 Type factoryGdbType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory");//Gdb
 Type factorySdeType = Type.GetTypeFromProgID("esriDataSourcesGDB.SdeWorkspaceFactory");//Sde
 Type factoryMdbType = Type.GetTypeFromProgID("esriDataSourcesGDB.AccessWorkspaceFactory");//Mdb
 Type factorySqliteType = Type.GetTypeFromProgID("esriDataSourcesGDB.SqlWorkspaceFactory");//Sqlite
 Type factoryCadType = Type.GetTypeFromProgID("esriDataSourcesFile.CadWorkspaceFactory");//Cad
 IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factory***Type);

 ------------------------------------------------------------------------------
 //方式2
 IWorkspaceFactory wksGdbFactory = new FileGDBWorkspaceFactoryClass();
 IWorkspaceFactory wksSdeFactory = new SdeWorkspaceFactoryClass();
 IWorkspaceFactory wksMdbFactory = new AccessWorkspaceFactoryClass();
 IWorkspaceFactory2 wksRasterFactory = new RasterWorkspaceFactoryClass();

2.调用workspacefactory的方法打开数据源

 //MDB,GDB,SDE文件路径
 string strDbPath = "文件路径";
 IWorkspace wks = wksFactory.OpenFromFile(strDbPath, 0);

 //SDE也可通过连接信息打开
 IPropertySet propSet=new PropertySetClass();
 propSet.SetProperty("server","服务器机器名" );
 propSet.SetProperty("instance","SDE运行的端口号");
 propSet.SetProperty("user","用户名");
 propSet.SetProperty("password","口令" );
 propSet.SetProperty("password","口令" );
 IWorkspace wks = wksFactory.Open(propSet, 0);

PS:获取MDB,GDB文件路径时要注意,“右键数据库文件=》属性=》安全=》对象名称”,此处的文件路径有问题,如要选路径可从资源管理器的文件路径复制。
string connectionString = string.Format("Provider=ESRI.GeoDB.OleDB.1;Data Source={0};Extended Properties=workspacetype=esriDataSourcesGDB.FileGDBWorkspaceFactory.1;Geometry=WKB", strDbPath);

转载于:https://www.cnblogs.com/lLazy/p/10662215.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值