• ArcGIS Engine 添加SDE数据库


    public void AddSDELayer(bool ChkSdeLinkModle)
    {
      //定义一个属性 
      IPropertySet propset = new PropertySetClass(); 
      if (ChkSdeLinkModle == true) // 采用SDE连接 
      {
          //设置数据库服务器名 
          propset.SetProperty("SERVER", "192.168.188.128");
          //设置SDE的端口,这是安装时指定的,默认安装时"port:5151" 
          propset.SetProperty("INSTANCE", "port:5151");
          //SDE的用户名 
          propset.SetProperty("USER", "sa");
          //密码 
          propset.SetProperty("PASSWORD", "123456");
          //设置数据库的名字,只有SQL Server  Informix 数据库才需要设置 
          propset.SetProperty("DATABASE", "esri_sde");
          //SDE的版本,在这为默认版本 
          propset.SetProperty("VERSION", "SDE.DEFAULT");
      }
      else // 直接连接  
      {
          //设置数据库服务器名,如果是本机可以用"sde:sqlserver:." 
          propset.SetProperty("INSTANCE", "sde:sqlserver:192.168.188.128");
          //SDE的用户名 
          propset.SetProperty("USER", "sa");
          //密码 
          propset.SetProperty("PASSWORD", "123456");
          //设置数据库的名字,只有SQL Server  Informix 数据库才需要设置             
          propset.SetProperty("DATABASE", "esri_sde");
          //SDE的版本,在这为默认版本 
          propset.SetProperty("VERSION", "SDE.DEFAULT");
       }
       //定义一个工作空间,并实力化为SDE的工作空间 
       IWorkspaceFactory Fact = new SdeWorkspaceFactoryClass();
       //打开SDE工作空间,并转化为地物工作空间 
       IFeatureWorkspace Workspace = (IFeatureWorkspace)Fact.Open(propset, 0);
       /*定义一个地物类,并打开SDE中的管点地物类,写的时候一定要写全.如SDE中有一个管点层,你不能写成IFeatureClass Fcls = Workspace.OpenFeatureClass ("管点");这样,一定要写成下边的样子.*/
       IFeatureClass Fcls = Workspace.OpenFeatureClass("esri_sde.DBO.道路");
       IFeatureLayer Fly = new FeatureLayerClass();
       Fly.FeatureClass = Fcls;
       axMapControl1.Map.AddLayer(Fly);
       axMapControl1.ActiveView.Refresh();
    }

     -------------------------------------------------------------------------------------------------------------------------------

    public static void test()  

           {  

    try  

               {  

                   IWorkspace pWS = GetSDEWorkspace("localhost", "localhost/orcl", "sde", "sde", "sde.DEFAULT");  

                   IDatabaseConnectionInfo4 pDCInfo = pWS as IDatabaseConnectionInfo4;  

                   IEnumUserInfo pEnumUsers = pDCInfo.ConnectedUsers;  

                   IUserInfo pUser = pEnumUsers.Next();  

    int pSessionID;//获得连接用户的sessionID   

    string sUserName = "";//连接用户名称  

    string sClientName = "";//连接用户的机器名  

    string sConnetionTime = "";//连接用户的开始连接时间  

    while (pUser != null)  

                   {  

    if (!pUser.IsOwnConnection)  

                       {  

                           pSessionID = pUser.SessionID;  

                           sUserName = pUser.Name;  

                           sClientName = pUser.ClientName;  

                           sConnetionTime = pUser.ConnectionTime.ToString();  

    //通过用户的sessionID断开用户连接  

                           pDCInfo.DisconnectUser(pSessionID);  

                       }  

                       pUser = pEnumUsers.Next();  

                   }  

               }  

    catch (Exception e)  

               { }  

           }  

    public static IWorkspace GetSDEWorkspace(string sServerName, string sInstancePort, string sUserName, string sPassword, string sVersionName)  

           {  

               IPropertySet2 set = new PropertySetClass();  

    set.SetProperty("Server", "");  

    set.SetProperty("DBCLIENT", "Oracle");  

    set.SetProperty("Instance", "sde:oracle11g:" + sInstancePort);  

    set.SetProperty("User", sUserName);  

    set.SetProperty("password", sPassword);  

    set.SetProperty("version", sVersionName);  

               IWorkspaceFactory2 class2 = new SdeWorkspaceFactoryClass();  

    try  

               {  

    return class2.Open(set, 0);  

               }  

    catch (Exception ex)  

               {  

    return null;  

               }  

           }

    ---------------------------------------------------------------------------------------------------------

    ArcGISEngine10.1

    访问

    ArcSDE 

    直连式

     

    IWorkspace

    pWkspace = 

    null

                ESRI.ArcGIS.Geodatabase.

    IWorkspaceFactory2

    workspaceFactory = 

    null

    ESRI.ArcGIS.esriSystem.

    IPropertySet

    pPropertySet = 

    new

    ESRI.ArcGIS.esriSystem.

    PropertySetClass

    (); 

    pPropertySet.SetProperty(

    "SERVER"

    "lingy"

    ); 

    pPropertySet.SetProperty(

    "INSTANCE"

    "sde:oracle11g:orcl"

    ); 

    pPropertySet.SetProperty(

    "AUTHENTICATION_MODE"

    "DBMS"

    ); 

    pPropertySet.SetProperty(

    "USER"

    "sde"

    ); 

    pPropertySet.SetProperty(

    "PASSWORD"

    "sde"

    ); 

    pPropertySet.SetProperty(

    "VERSION"

    "SDE.DEFAULT"

    ); 

    workspaceFactory = 

    (ESRI.ArcGIS.Geodatabase.

    IWorkspaceFactory2

    )

    new

    ESRI.ArcGIS.DataSourcesGDB.

    SdeWorkspaceF

    actoryClass

    (); 

    pWkspace = workspaceFactory.Open(pPropertySet, 0); 

     

    服务式

     

    IWorkspace

    pWkspace = 

    null

                ESRI.ArcGIS.Geodatabase.

    IWorkspaceFactory2

    workspaceFactory = 

    null

    ESRI.ArcGIS.esriSystem.

    IPropertySet

    pPropertySet = 

    new

    ESRI.ArcGIS.esriSystem.

    PropertySetClass

    (); 

    pPropertySet.SetProperty(

    "SERVER"

    "lingy"

    ); 

    pPropertySet.SetProperty(

    "INSTANCE"

    "esri_sde"

    ); 

    pPropertySet.SetProperty(

    "DATABASE"

    "orcl"

    ); 

    pPropertySet.SetProperty(

    "USER"

    "sde"

    ); 

    pPropertySet.SetProperty(

    "PASSWORD"

    "sde"

    ); 

    pPropertySet.SetProperty(

    "VERSION"

    "SDE.DEFAULT"

    ); 

    workspaceFactory = 

    (ESRI.ArcGIS.Geodatabase.

    IWorkspaceFactory2

    )

    new

    ESRI.ArcGIS.DataSourcesGDB.

    SdeWorkspaceF

    actoryClass

    (); 

    pWkspace = workspaceFactory.Open(pPropertySet, 0); 

     

     
  • 相关阅读:
    Directx11教程(21) 修正程序最小化异常bug
    Directx教程(28) 简单的光照模型(7)
    Directx教程(22) 简单的光照模型(1)
    Directx教程(26) 简单的光照模型(5)
    Directx教程(25) 简单的光照模型(4)
    finit 1.5 发布,/sbin/init 的服务器监控器
    MySQL 8小时问题
    DataCleaner 3.0.1 发布,数据质量分析管理
    dedecms调用其它栏目列表
    ReportPlus:在iPad上创建和使用仪表盘及报表
  • 原文地址:https://www.cnblogs.com/raorao1994/p/7244517.html
Copyright © 2020-2023  润新知