ArcSDE数据库连接工具类
代码如下:
using ESRI.ArcGIS.DataSourcesGDB; using ESRI.ArcGIS.esriSystem; using ESRI.ArcGIS.Geodatabase; using System; /// <summary> /// ArcSDE数据库连接工具类 /// </summary> public class SDEHelper { /// <summary> /// 连接到ArcSDE数据库 /// </summary> /// <param name="services">服务名、IP或者"localhost"</param> /// <param name="username">SDE数据库用户名</param> /// <param name="pwd">SDE数据库用户密码</param> /// <returns>返回IWorkspace对象实例</returns> public static IWorkspace Connect(string services, string username, string pwd) { try { /**连接sde数据库**/ //License IAoInitialize pAoInit = new AoInitializeClass(); pAoInit.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcView); IWorkspaceFactory factory = new SdeWorkspaceFactory(); IPropertySet set = new PropertySetClass(); set.SetProperty("INSTANCE", services); set.SetProperty("SERVER", "localhost"); set.SetProperty("USER", username); set.SetProperty("PASSWORD", pwd); set.SetProperty("VERSION", "sde.DEFAULT"); return factory.Open(set, 0); } catch (Exception e) { Console.WriteLine(e.StackTrace); return null; } } /// <summary> /// 根据提示获取用户输入内容 /// </summary> /// <param name="info">用户提示信息</param> /// <returns>返回用户输入的内容</returns> public static string Input(string info) { Console.Write(info); return Console.ReadLine().Trim(); } /// <summary> /// 类的主函数入口用于测试 /// </summary> public static void Main() { string services = Input("请输入服务名:"); string username = Input("请输入用户名:"); string pwd = Input("请输入密码:"); IWorkspace workspace = Connect(services, username, pwd); if (workspace != null) Console.WriteLine("数据库连接成功!"); else Console.WriteLine("数据库连接失败,请检查输入是否正确!"); } }