www.pudn.com > ArcgisMapOperation.rar > UserDatabaseOperation.cs


using System; 
using System.Collections.Generic; 
using System.Text; 
 
using System.Data.OleDb; 
 
using ESRI.ArcGIS.Geodatabase; 
using ESRI.ArcGIS.esriSystem; 
using ESRI.ArcGIS.DataSourcesGDB; 
using ESRI.ArcGIS.DataSourcesRaster; 
using ESRI.ArcGIS.DataSourcesFile; 
 
namespace ArcgisMapOperation.EsriLib 
{ 
    public class UserDatabaseOperation 
    { 
        #region 操作ACCESS库 
        ///  
        /// 根据数据文件路径获取WORKSPACE 
        ///  
        /// access文件路径[For example, strAccessPath = "C:\\myData\\mypGDB.mdb"] 
        ///  
        public static IWorkspace GetWorkspaceBySetPerproty(string strAccessPath) 
        { 
            IPropertySet propertySet = new PropertySetClass(); 
            propertySet.SetProperty("DATABASE", strAccessPath); 
            IWorkspaceFactory workspaceFactory = new AccessWorkspaceFactoryClass(); 
 
            return workspaceFactory.Open(propertySet, 0); 
        } 
 
        ///  
        /// 根据数据文件路径获取WORKSPACE 
        ///  
        /// access文件路径[For example, strAccessPath = "C:\\myData\\mypGDB.mdb"] 
        ///  
        public static IWorkspace GetWorkspaceBySetFile(string strAccessPath) 
        { 
            IWorkspaceFactory workspaceFactory = new AccessWorkspaceFactoryClass(); 
            return workspaceFactory.OpenFromFile(strAccessPath, 0); 
        } 
 
        ///  
        /// 获取影象数据集合 
        ///  
        /// 工作空间对象 
        /// 数据集名 
        ///  
        public static IRasterDataset OpenFileRasterDataset(IWorkspace workSpace, string datasetName) 
        { 
            IRasterWorkspace rasterWorkspace = workSpace as IRasterWorkspace; 
            IRasterDataset rasterDataset = rasterWorkspace.OpenRasterDataset(datasetName); 
            return rasterDataset; 
        } 
 
 
        ///  
        /// 获取图例 
        ///  
        /// 工作空间对象 
        /// 数据表名 
        ///  
        public static IFeatureClass GetFeature(IWorkspace workSpace, string strTableName) 
        { 
            IFeatureWorkspace featureWorkspace = workSpace as IFeatureWorkspace; 
            IFeatureClass featureClass = featureWorkspace.OpenFeatureClass(strTableName); 
 
            return featureClass; 
        } 
 
        ///  
        /// 获取表 
        ///  
        /// 工作空间对象 
        /// 数据表名 
        ///  
        public static ITable GetTable(IWorkspace workSpace, string strTableName) 
        { 
            IFeatureWorkspace featureWorkspace = workSpace as IFeatureWorkspace; 
            ITable table = featureWorkspace.OpenTable(strTableName); 
 
            return table; 
        } 
         
        #endregion 
  
        ///  
        /// 连接SHARP文件(location CANNOT be relative path ".\data\usa" it must be explicit pathname) 
        ///  
        ///  
        ///  
        public IWorkspace openShapfileWorkspace(string Location) 
        { 
            IWorkspace ws = null; 
            IWorkspaceFactory wsf = new ShapefileWorkspaceFactoryClass(); 
            ws = wsf.OpenFromFile(Location, 0); 
            return ws; 
        } 
 
        ///  
        /// 连接企业库(create and open the sde workspace based on the provided information) 
        ///  
        ///  
        ///  
        ///  
        ///  
        ///  
        ///  
        ///  
        public IWorkspace openSDEWorkspace(string Server, string Instance, string User, 
                                           string Password, string Database, string version) 
        { 
            IWorkspace ws = null; 
 
            IPropertySet pPropSet = new PropertySetClass(); 
            IWorkspaceFactory pSdeFact = new SdeWorkspaceFactoryClass(); 
 
            pPropSet.SetProperty("SERVER", Server); 
            pPropSet.SetProperty("INSTANCE", Instance); 
            pPropSet.SetProperty("DATABASE", Database); 
            pPropSet.SetProperty("USER", User); 
            pPropSet.SetProperty("PASSWORD", Password); 
            pPropSet.SetProperty("VERSION", version); 
 
            ws = pSdeFact.Open(pPropSet, 0); 
            return ws; 
        } 
 
        ///  
        /// OLEDB的连接 
        ///  
        ///  
        public static OleDbConnection GetSdeConnectionByOledb() 
        { 
            OleDbConnection sdeConn = new OleDbConnection(); 
            String oledbConnectionString; 
           
            // Set the Connection String 
            oledbConnectionString = "Provider=ESRI.GeoDB.OleDB.1;Location=balrog;Data Source=sde;User Id=vtest;Password=go;Extended Properties=workspacetype=esriDataSourcesGDB.SdeWorkspaceFactory.1;Geometry=WKB;Instance=5150;Version=SDE.DEFAULT"; 
            sdeConn.ConnectionString = oledbConnectionString; 
 
            // Open the Connection 
            sdeConn.Open(); 
 
            return sdeConn; 
        } 
 
    } 
}