示例#1
0
        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;
        }
示例#2
0
        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();
        }