private void btnTest_Click(object sender, EventArgs e) { Exception err = null; SysCommon.Gis.SysGisDB dbsys = new SysCommon.Gis.SysGisDB(); switch (comBoxType.Text) { case "ESRI文件数据库(*.gdb)": dbsys.SetWorkspace(txtDB.Text, SysCommon.enumWSType.GDB, out err); break; case "ArcSDE(For Oracle)": dbsys.SetWorkspace(txtServer.Text, txtInstance.Text, txtDB.Text, txtUser.Text, txtPassword.Text, txtVersion.Text, out err); break; case "ESRI个人数据库(*.mdb)": dbsys.SetWorkspace(txtDB.Text, SysCommon.enumWSType.PDB, out err); break; } if (err != null) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("连接数据库失败", "原因:" + err.Message); return; } dbsys.Dispose(); btnOK.Enabled = true; }
public override void OnClick() { Exception outError = null; ////////guozheng 2011-3-14 added if (this.m_DBConInfoele == null) { return; } string sDBConStr = this.m_DBConInfoele.GetAttribute("数据库连接信息"); string sDBID = this.m_DBConInfoele.GetAttribute("数据库ID"); string sDBType = this.m_DBConInfoele.GetAttribute("数据库类型"); string sDBFormate = this.m_DBConInfoele.GetAttribute("数据库平台"); //cyf 20110603 delete //if (sDBFormate != "ARCGISSDE") return; //end if (string.IsNullOrEmpty(sDBConStr)) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "获取数据库工程的连接信息失败"); return; } //////////不为SDE数据库不进行任务分配/////// /////////首先获取SDE上的Workspace/////////// //cyf 20110603 modify:连接geodatabase //IPropertySet pPropSet = new PropertySetClass(); SysCommon.Gis.SysGisDB pSysDb = new SysCommon.Gis.SysGisDB(); //IWorkspaceFactory pSdeFact = new SdeWorkspaceFactoryClass(); string[] SDEConnectInfo = null; try { SDEConnectInfo = sDBConStr.Split('|'); if (SDEConnectInfo.Length < 7) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "获取数据库工程用户库数据集失败"); return; } //pPropSet.SetProperty("SERVER", SDEConnectInfo[0]); //pPropSet.SetProperty("INSTANCE", SDEConnectInfo[1]); //pPropSet.SetProperty("DATABASE", SDEConnectInfo[2]); //pPropSet.SetProperty("USER", SDEConnectInfo[3]); //pPropSet.SetProperty("PASSWORD", SDEConnectInfo[4]); //pPropSet.SetProperty("VERSION", SDEConnectInfo[5]); //this.m_SDEWs = pSdeFact.Open(pPropSet, 0); if (sDBFormate == enumInterDBFormat.ARCGISGDB.ToString()) { pSysDb.SetWorkspace(SDEConnectInfo[2], SysCommon.enumWSType.GDB, out outError); } else if (sDBFormate == enumInterDBFormat.ARCGISPDB.ToString()) { pSysDb.SetWorkspace(SDEConnectInfo[2], SysCommon.enumWSType.PDB, out outError); } else if (sDBFormate == enumInterDBFormat.ARCGISPDB.ToString()) { pSysDb.SetWorkspace(SDEConnectInfo[0], SDEConnectInfo[1], SDEConnectInfo[2], SDEConnectInfo[3], SDEConnectInfo[4], SDEConnectInfo[5], out outError); } if (outError != null) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "连接Geodatabase库体失败," + outError.Message); return; } this.m_SDEWs = pSysDb.WorkSpace; } catch (Exception eError) { /////系统运行日志 if (null == ModData.SysLog) { ModData.SysLog = new SysCommon.Log.clsWriteSystemFunctionLog(); } ModData.SysLog.Write(eError); SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "连接Geodatabase库体失败," + eError.Message); return; } //end /////////获取本地的任务分配图层,转储至SDE中//////// IDataset pUserDataSet = null; ///////////////////////用户库数据集 IFeatureClass pTaskRangeCls = null; ////////////////Range图层 try { if (SDEConnectInfo[6].Trim() == "") { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "目标库数据集不存在,请先创建数据库!"); return; } pUserDataSet = (this.m_SDEWs as IFeatureWorkspace).OpenFeatureDataset(SDEConnectInfo[6]); Exception ex = null; pTaskRangeCls = CreateTaskRangeLayerInSDE("RANGE", this.m_SDEWs, pUserDataSet, out ex); if (ex != null) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "SDE中建立任务范围图层失败," + ex.Message); return; } } catch (Exception eError) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", eError.Message); if (null == ModData.SysLog) { ModData.SysLog = new SysCommon.Log.clsWriteSystemFunctionLog(); } ModData.SysLog.Write(eError); return; } ////////获取本地的数据库图层,导入至SDE图层中/////////////// FrmGetTaskLayerGuide GetTaskLayerGuideFrm = new FrmGetTaskLayerGuide(m_Hook, this.m_SDEWs, sDBID); GetTaskLayerGuideFrm.ShowDialog(); }