博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生成sde
阅读量:5103 次
发布时间:2019-06-13

本文共 4651 字,大约阅读时间需要 15 分钟。

///         ///获取保存的SDE文件        ///         ///         /// 
public static bool SaveSdeConnectionFile(string sdePath) { try { // 如果已经存在了,则删除了重新创建 if (File.Exists(sdePath)) { File.Delete(sdePath); } IWorkspaceFactory workspaceFactory = new SdeWorkspaceFactoryClass(); // 创建.sde文件 IWorkspaceName workspaceName = workspaceFactory.Create(Path.GetDirectoryName(sdePath), Path.GetFileNameWithoutExtension(sdePath), InitFromSdeConfig(), 0); // 使用.sde文件,通过.sde文件获取IWorkspace,之后就可以对数据库中的数据进行操作了// IWorkspace pWorkspace = workspaceFactory.OpenFromFile(sdePath, 0); return true; } catch (Exception e) { Console.WriteLine(e); } return false; } //获取sde连接串 private static IPropertySet InitFromSdeConfig() { string strFilePath = AppConfig.SdeConfig; if (!File.Exists(strFilePath)) return null; //读XML XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(strFilePath); string txtServer = "", txtService = "", txtUserId = "", txtPassword = ""; string type = ""; try { XmlNode nodeSde = xmldoc.SelectSingleNode("SDE"); //SDE信息 txtServer = nodeSde.SelectSingleNode("Server").InnerText; txtService = nodeSde.SelectSingleNode("Service").InnerText; type = nodeSde.SelectSingleNode("Type").InnerText; txtUserId = nodeSde.SelectSingleNode("User").InnerText; txtPassword = nodeSde.SelectSingleNode("Pass").InnerText; } catch { } IPropertySet mPPropSet = new PropertySetClass(); //string strIsDerect = comboBoxEditType.SelectedIndex.ToString(); //设置SDE连接属性信息:直连或非直连 if (type == "0") { mPPropSet.SetProperty("SERVER", txtServer); mPPropSet.SetProperty("INSTANCE", txtService); //mPPropSet.SetProperty("Database", ""); mPPropSet.SetProperty("AUTHENTICATION_MODE", "DBMS"); mPPropSet.SetProperty("User", txtUserId); mPPropSet.SetProperty("password", txtPassword); mPPropSet.SetProperty("version", "SDE.DEFAULT"); } else if (type == "1") { mPPropSet.SetProperty("INSTANCE", txtService); mPPropSet.SetProperty("User", txtUserId); mPPropSet.SetProperty("password", txtPassword); mPPropSet.SetProperty("version", "SDE.DEFAULT"); } _dbConnName = txtService; return mPPropSet; } private static string GetSdeConn() { string sdeconn = AppConfig.SdeConnString; if (SdeDbUtil.SaveSdeConnectionFile(sdeconn)) { return sdeconn; } return ""; } //调用执行代码 //如果polyFeatureName的参数为空字符串,则直接进行数据的拷贝工作 //关于SDE要素的连接字符串描述参见:pFieldMappings.AddTable(“C:\\XXX\XXX\\Connection to XXX.sde\\" + pFeatureClass.FeatureDataset.Name + "\\" + pFeatureClass.AliasName) http://blog.sina.com.cn/s/blog_5d25ac4e0100uhob.html //将分析的数据保存到GDB数据库中 string srcFeatureClassPath = ""; string srcOutPath = ""; string resFeatureOutPath; string sdeFile = GetSdeConn(); if (string.IsNullOrEmpty(sdeFile)) { MessageBoxHelper.ShowMessageBox("无法获取成果库的连接!"); return ""; } if (!string.IsNullOrEmpty(pntFeaturnName)) { string srcDbPath = string.Format(@"{0}\{1}", sdeFile, pntFeaturnName); string outName = string.IsNullOrEmpty(outFeatureName) ? pntFeaturnName : outFeatureName; srcOutPath = string.Format(@"{0}\{1}", CurrentWorkGdbPath, AnalysisResHelper.GetAnalysisTempName(outName)); GPSelectFeaturesCore selectFeaturesCorePnt = new GPSelectFeaturesCore(); selectFeaturesCorePnt.InputFeatures = srcDbPath; selectFeaturesCorePnt.OutputFeatureClass = srcOutPath; selectFeaturesCorePnt.WhereClause = pntFilterCondition; selectFeaturesCorePnt.DoAnalysis(); }

 

转载于:https://www.cnblogs.com/liuyongpingblog/p/9082411.html

你可能感兴趣的文章
redis 学习笔记(6)-cluster集群搭建
查看>>
Linux下安装matlab2014a
查看>>
在windows下用vagrant建立lnmp开发环境
查看>>
Luogu P2880 [USACO07JAN]平衡的阵容Balanced Lineup (ST表模板)
查看>>
作业2(4)
查看>>
C#: switch语句的重构『网摘』
查看>>
12.9——周总
查看>>
Windows 7 下 PHP 开发环境搭建(手动)
查看>>
在腾讯云服务器上实现java web项目部署
查看>>
linux文档常见后缀名
查看>>
C++关键字 explicit
查看>>
为什么要使用自增ID作为主键
查看>>
Redis学习笔记之入门基础知识——其他特性
查看>>
C#—异步编程
查看>>
更新.xsd后,rdlc 数据源更新不了
查看>>
黑苹果Mac系统快捷键修改
查看>>
错误 C2280 Union : 尝试引用已删除的函数 以及 警告 C4624 “Grade”: 已将析构函数隐式定义为“已删除”的一种解决方法...
查看>>
调试时重新生成代码
查看>>
java中集合
查看>>
vue.js详细教程--优优优
查看>>