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;
}
}
}