Example #1
0
        //获取用户菜单权限的id集合
        public static List <string> GetUserPrivilege(User user, SysGisDB gisDb, out Exception exError)
        {
            exError = null;
            string rolePrivilegeID;

            try
            {
                SysGisTable sysTable = new SysGisTable(gisDb);
                List <Dictionary <string, object> > lstDicData = sysTable.GetRows("user_role", "USERID='" + user.IDStr + "'", out exError);
                List <string> ids = null;
                if (lstDicData != null && lstDicData.Count > 0)
                {
                    ids = new List <string>();
                    foreach (Dictionary <string, object> dic in lstDicData)
                    {
                        foreach (string key in dic.Keys)
                        {
                            if (key.Equals("ROLEID"))
                            {
                                ids.Add(dic[key].ToString());
                            }
                        }
                    }
                    if (ids.Count > 0)
                    {
                        string strSql = "";
                        foreach (string id in ids)
                        {
                            if (string.IsNullOrEmpty(strSql))
                            {
                                strSql = "'" + id.ToString() + "'";
                            }
                            else
                            {
                                strSql += ",'" + id.ToString() + "'";
                            }
                        }
                        //获取当前用户的当前组id集
                        List <Dictionary <string, object> > lstDicDataRole = sysTable.GetRows("role_pri", "ROLEID IN (" + strSql + ")", out exError);
                        List <string> lstRolePrivilege = null;
                        if (lstDicDataRole != null && lstDicDataRole.Count > 0)
                        {
                            lstRolePrivilege = new List <string>();
                            for (int i = 0; i < lstDicDataRole.Count; i++)
                            {
                                rolePrivilegeID = lstDicDataRole[i]["PRIVILEGE_ID"].ToString();
                                lstRolePrivilege.Add(rolePrivilegeID);
                            }
                            Purge(ref lstRolePrivilege);
                            return(lstRolePrivilege);
                        }
                    }
                }
                return(null);
            }
            catch
            {
                return(null);
            }
        }
Example #2
0
        public override void OnClick()
        {
            //   zhangqi Add
            //判断配置文件是否存在
            bool blnCanConnect = false;

            SysCommon.Gis.SysGisDB vgisDb = new SysGisDB();
            if (File.Exists(GeoDBIntegration.ModuleData.v_ConfigPath))
            {
                //获得系统维护库连接信息
                SysCommon.Authorize.AuthorizeClass.GetConnectInfo(GeoDBIntegration.ModuleData.v_ConfigPath, out GeoDBIntegration.ModuleData.Server, out GeoDBIntegration.ModuleData.Instance, out GeoDBIntegration.ModuleData.Database, out GeoDBIntegration.ModuleData.User, out GeoDBIntegration.ModuleData.Password, out GeoDBIntegration.ModuleData.Version, out GeoDBIntegration.ModuleData.dbType);
                //连接系统维护库
                blnCanConnect = CanOpenConnect(vgisDb, GeoDBIntegration.ModuleData.dbType, GeoDBIntegration.ModuleData.Server, GeoDBIntegration.ModuleData.Instance, GeoDBIntegration.ModuleData.Database, GeoDBIntegration.ModuleData.User, GeoDBIntegration.ModuleData.Password, GeoDBIntegration.ModuleData.Version);
            }
            else
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "缺失系统维护库连接信息文件:" + GeoDBIntegration.ModuleData.v_ConfigPath + "/n请重新配置");
                return;
            }
            if (!blnCanConnect)
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "系统能够维护库连接失败,请检查!");
                return;
            }

            GeoDBIntegration.ModuleData.TempWks = vgisDb.WorkSpace;
            //zhangqi   add  end
            frmMetaStat FrmMetaConv = new frmMetaStat();

            FrmMetaConv.ShowDialog();
        }
Example #3
0
        public override void OnClick()
        {
            // *********************************************
            // *cyf
            // *modify
            // *读取系统维护库连接信息
            // *20110602
            #region 原有代码
            //连接数据库
            //if (ModuleData.v_AppConnStr.Trim() == "")
            //{
            //    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "获取系统维护库连接字符串失败!");
            //    return;
            //}

            //frmAddNewDB AddNewDB = new frmAddNewDB(SysCommon.enumDBConType.ORACLE, SysCommon.enumDBType.ORACLE, ModuleData.v_AppConnStr, EnumUpdateType.Update.ToString());
            //AddNewDB.ShowDialog();
            #endregion
            //判断配置文件是否存在
            if (ModuleData.TempWks == null)
            {
                bool blnCanConnect            = false;
                SysCommon.Gis.SysGisDB vgisDb = new SysGisDB();
                if (File.Exists(ModuleData.v_ConfigPath))
                {
                    //获得系统维护库连接信息
                    SysCommon.Authorize.AuthorizeClass.GetConnectInfo(ModuleData.v_ConfigPath, out ModuleData.Server, out ModuleData.Instance, out ModuleData.Database, out ModuleData.User, out ModuleData.Password, out ModuleData.Version, out ModuleData.dbType);
                    //连接系统维护库
                    blnCanConnect = CanOpenConnect(vgisDb, ModuleData.dbType, ModuleData.Server, ModuleData.Instance, ModuleData.Database, ModuleData.User, ModuleData.Password, ModuleData.Version);
                }
                else
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "缺失系统维护库连接信息文件:" + ModuleData.v_ConfigPath + "/n请重新配置");
                    return;
                }
                if (!blnCanConnect)
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "系统维护库连接失败,请检查!");
                    return;
                }
                ModuleData.TempWks = vgisDb.WorkSpace;
            }
            //cyf 20110615 add:
            if (ModuleData.TempWks == null)
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "获取系统维护库工作空间失败,请检查!");
                return;
            }
            //end
            if (this.WriteLog)
            {
                Plugin.LogTable.Writelog(Caption);//xisheng 2011.07.09 增加日志
            }
            frmAddNewDB AddNewDB = new frmAddNewDB(ModuleData.TempWks, EnumUpdateType.Update.ToString());
            AddNewDB.ShowDialog();
            // *end
            // ***********************************************************
        }
Example #4
0
        public override void OnClick()
        {
            if (MessageBox.Show("确定要系统初始化吗?本操作会覆盖原来的系统业务数据", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            {
                return;
            }
            if (File.Exists(Mod.v_ConfigPath))
            {
                //工作库
                SysCommon.Gis.SysGisDB vgisDb = new SysGisDB();
                SysCommon.Authorize.AuthorizeClass.GetConnectInfo(Mod.v_ConfigPath, out Mod.Server, out Mod.Instance, out Mod.Database, out Mod.User, out Mod.Password, out Mod.Version, out Mod.dbType);
                bool blnCanConnect = CanOpenConnect(vgisDb, Mod.dbType, Mod.Server, Mod.Instance, Mod.Database, Mod.User, Mod.Password, Mod.Version);
            }

            SysGisDB   gisDb  = new SysGisDB();
            bool       result = false;
            Exception  eError;
            enumWSType wsType;

            switch (Mod.dbType)
            {
            case "SDE":
                result = gisDb.SetWorkspace(Mod.Server, Mod.Instance, Mod.Database, Mod.User, Mod.Password, Mod.Version, out eError);
                break;

            case "PDB":
                wsType = enumWSType.PDB;
                result = gisDb.SetWorkspace(Mod.Server, wsType, out eError);
                break;

            case "GDB":
                wsType = enumWSType.GDB;
                result = gisDb.SetWorkspace(Mod.Server, wsType, out eError);
                break;

            default:
                break;
            }
            if (result == false)
            {
                return;
            }

            IWorkspaceFactory pWorkspaceFactory = null;
            IWorkspace        pWorkspace        = null;
            IPropertySet      pPropertySet      = new PropertySetClass();

            string dataPath = Application.StartupPath + "\\..\\Template\\DbInfoTemplate.gdb";

            pPropertySet.SetProperty("DATABASE", dataPath);
            pWorkspaceFactory = new ESRI.ArcGIS.DataSourcesGDB.FileGDBWorkspaceFactoryClass();
            pWorkspace        = pWorkspaceFactory.Open(pPropertySet, 0);
            if (pWorkspace == null)
            {
                return;
            }
            InitSystemByXML(pWorkspace, gisDb.WorkSpace);
        }
Example #5
0
        public override void OnClick()
        {
            //   zhangqi Add
            //判断配置文件是否存在
            bool blnCanConnect = false;

            SysCommon.Gis.SysGisDB vgisDb = new SysGisDB();
            if (File.Exists(GeoDBIntegration.ModuleData.v_ConfigPath))
            {
                //获得系统维护库连接信息
                SysCommon.Authorize.AuthorizeClass.GetConnectInfo(GeoDBIntegration.ModuleData.v_ConfigPath, out GeoDBIntegration.ModuleData.Server, out GeoDBIntegration.ModuleData.Instance, out GeoDBIntegration.ModuleData.Database, out GeoDBIntegration.ModuleData.User, out GeoDBIntegration.ModuleData.Password, out GeoDBIntegration.ModuleData.Version, out GeoDBIntegration.ModuleData.dbType);
                //连接系统维护库
                blnCanConnect = CanOpenConnect(vgisDb, GeoDBIntegration.ModuleData.dbType, GeoDBIntegration.ModuleData.Server, GeoDBIntegration.ModuleData.Instance, GeoDBIntegration.ModuleData.Database, GeoDBIntegration.ModuleData.User, GeoDBIntegration.ModuleData.Password, GeoDBIntegration.ModuleData.Version);
            }
            else
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "缺失系统维护库连接信息文件:" + GeoDBIntegration.ModuleData.v_ConfigPath + "/n请重新配置");
                return;
            }
            if (!blnCanConnect)
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "系统能够维护库连接失败,请检查!");
                return;
            }
            //zhangqi   add  end
            GeoDBIntegration.ModuleData.TempWks = vgisDb.WorkSpace;
            SysCommon.CProgress pgss = new SysCommon.CProgress("正在加载元数据出图界面,请稍候...");
            try
            {
                pgss.EnableCancel    = false;
                pgss.ShowDescription = false;
                pgss.FakeProgress    = true;
                pgss.TopMost         = false;
                pgss.ShowProgress();
                Application.DoEvents();
                createMatadataMap(vgisDb.WorkSpace);
                pgss.Close();
            }
            catch (Exception ex)
            {
                pgss.Close();
                ErrorHandle.ShowFrmErrorHandle("提示", ex.Message);
                return;
            }
            frmMetaMap FrmMetaConv = new frmMetaMap(vgisDb.WorkSpace);

            FrmMetaConv.ShowDialog();
        }
Example #6
0
        /// <summary>
        /// 检查用户登陆
        /// </summary>
        /// <param name="name"></param>
        /// <param name="password"></param>
        /// <param name="gisDb"></param>
        /// <returns></returns>
        public static bool AddSystemXML(string name, out Exception eError)
        {
            eError = null;
            User user;

            try
            {
                SysGisDB gisDb = new SysGisDB();
                GeoUtilities.clsDBConnect DBConn = new GeoUtilities.clsDBConnect();
                DBConn.GetConInfo();
                IWorkspace pWorkSpace = DBConn.GetWorkspace();
                gisDb.WorkSpace = pWorkSpace;
                SysGisTable sysTable = new SysGisTable(gisDb);
                Dictionary <string, object> dicData = sysTable.GetRow("ICE_USERINFO", "U_NAME='" + name + "'", out eError);
                if (dicData == null || dicData.Count == 0)
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "用户不存在!");
                    return(false);
                }
                if (dicData != null && dicData.Count > 0)
                {
                    user          = new User();
                    user.ID       = int.Parse(dicData["U_ID"].ToString());
                    user.Name     = dicData["U_NAME"].ToString();
                    user.Password = dicData["U_PWD"].ToString();
                    //user.Sex = int.Parse(dicData["U_SEX"].ToString());
                    user.Position  = dicData["U_JOB"].ToString();
                    user.Remark    = dicData["U_REMARK"].ToString();
                    user.LoginInfo = dicData["LOGININFO"].ToString();
                    //将用户信息和相应权限信息保存起来,在加载插件时用到
                    Mod.v_AppUser   = user;
                    Mod.v_SystemXml = GetPrivilegeXml(user, gisDb, out eError);
                    return(true);
                }
                return(false);
            }
            catch (Exception ex)
            {
                eError = ex;
                return(false);
            }
        }
Example #7
0
        //测试链接信息是否可用
        public static bool CanOpenConnect(string strType, string strServer, string strService, string strDatabase, string strUser, string strPassword, string strVersion)
        {
            SysCommon.Gis.SysGisDB vgisDb = new SysGisDB();
            bool blnOpen = false;

            Exception Err;

            if (strType.ToUpper() == "SDE")
            {
                blnOpen = vgisDb.SetWorkspace(strServer, strService, strDatabase, strUser, strPassword, strVersion, out Err);
            }
            else if (strType.ToUpper() == "PDB")
            {
                blnOpen = vgisDb.SetWorkspace(strServer, SysCommon.enumWSType.PDB, out Err);
            }
            else if (strType.ToUpper() == "GDB")
            {
                blnOpen = vgisDb.SetWorkspace(strServer, SysCommon.enumWSType.GDB, out Err);
            }

            return(blnOpen);
        }
Example #8
0
        //静态构造函数
        static LogTable()
        {
            if (m_gisDb == null)
            {
                user = (Plugin.ModuleCommon.AppUser == null) ? "" : Plugin.ModuleCommon.AppUser.Name;
                SysCommon.Gis.SysGisDB vgisDb = new SysGisDB();
                SysCommon.Authorize.AuthorizeClass.GetConnectInfo(Mod.v_ConfigPath, out Mod.Server, out Mod.Instance, out Mod.Database, out Mod.User, out Mod.Password, out Mod.Version, out Mod.dbType);
                bool blnCanConnect = CanOpenConnect(vgisDb, Mod.dbType, Mod.Server, Mod.Instance, Mod.Database, Mod.User, Mod.Password, Mod.Version);

                if (blnCanConnect == false)
                {
                    MessageBox.Show("数据库连接失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }

                m_gisDb = vgisDb;
            }
            if (m_sysTable == null)
            {
                SysGisTable sysTable = new SysGisTable(m_gisDb);
                m_sysTable = sysTable;
            }
        }
Example #9
0
        /// <summary>
        /// 权限文档合并
        /// </summary>
        /// <param name="user"></param>
        /// <param name="gisDb"></param>
        /// <returns></returns>
        private static XmlDocument GetPrivilegeXml(User user, SysGisDB gisDb, out Exception exError)
        {
            exError = null;
            Role role;

            try
            {
                SysGisTable sysTable = new SysGisTable(gisDb);
                List <Dictionary <string, object> > lstDicData = sysTable.GetRows("ICE_USERGROUPRELATION", "U_ID=" + user.ID, out exError);
                List <int> ids = null;
                if (lstDicData != null && lstDicData.Count > 0)
                {
                    ids = new List <int>();
                    foreach (Dictionary <string, object> dic in lstDicData)
                    {
                        foreach (string key in dic.Keys)
                        {
                            if (key.Equals("G_ID"))
                            {
                                ids.Add(int.Parse(dic[key].ToString()));
                            }
                        }
                    }
                    if (ids.Count > 0)
                    {
                        string strSql = "";
                        foreach (int id in ids)
                        {
                            if (string.IsNullOrEmpty(strSql))
                            {
                                strSql = id.ToString();
                            }
                            else
                            {
                                strSql += "," + id.ToString();
                            }
                        }
                        //获取当前用户的当前组id集
                        List <Dictionary <string, object> > lstDicDataRole = sysTable.GetRows("ICE_USERGROUPINFO", "G_ID IN (" + strSql + ")", out exError);
                        Dictionary <int, Role> dic = new Dictionary <int, Role>();
                        if (lstDicDataRole != null)
                        {
                            for (int i = 0; i < lstDicDataRole.Count; i++)
                            {
                                role           = new Role();
                                role.ID        = int.Parse(lstDicDataRole[i]["G_ID"].ToString());
                                role.Name      = lstDicDataRole[i]["G_NAME"].ToString();
                                role.Type      = lstDicDataRole[i]["G_TYPE"].ToString();
                                role.Privilege = lstDicDataRole[i]["G_PURVIEW"] as XmlDocument;
                                role.Remark    = lstDicDataRole[i]["G_REMARK"].ToString();
                                dic.Add(int.Parse(lstDicDataRole[i]["G_ID"].ToString()), role);
                            }
                            if (dic.Count > 0)
                            {
                                XmlDocument allDoc = null;
                                foreach (int key in dic.Keys)
                                {
                                    //合并权限文档
                                    MergeXml(ref allDoc, dic[key].Privilege);
                                }
                                return(allDoc);
                            }
                        }
                    }
                }
                return(null);
            }
            catch
            {
                return(null);
            }
        }
Example #10
0
        /// <summary>
        /// 检查用户登陆
        /// </summary>
        /// <param name="name"></param>
        /// <param name="password"></param>
        /// <param name="gisDb"></param>
        /// <returns></returns>
        public static bool CheckLogin(string name, string password, ref SysGisDB gisDb, enumWSType wsType, out Exception eError)
        {
            eError = null;
            User user;
            bool result = false;

            try
            {
                if (gisDb == null)
                {
                    gisDb = new SysGisDB();
                    switch (wsType)
                    {
                    case enumWSType.SDE:
                        result = gisDb.SetWorkspace(Mod.Server, Mod.Instance, Mod.Database, Mod.User, Mod.Password, Mod.Version, out eError);
                        break;

                    case enumWSType.PDB:
                    case enumWSType.GDB:
                        result = gisDb.SetWorkspace(Mod.Server, wsType, out eError);
                        break;

                    default:
                        break;
                    }
                    if (!result)
                    {
                        return(false);
                    }
                }
                SysGisTable sysTable = new SysGisTable(gisDb);
                Dictionary <string, object> dicData = sysTable.GetRow("user_info", "NAME='" + name.ToLower() + "'", out eError);
                if (dicData != null && dicData.Count > 0)
                {
                    user          = new User();
                    user.IDStr    = dicData["USERID"].ToString();
                    user.Name     = dicData["NAME"].ToString();
                    user.TrueName = dicData["TRUTHNAME"].ToString();
                    user.Password = dicData["UPWD"].ToString();
                    user.SexInt   = int.Parse(dicData["USEX"].ToString());
                    user.Position = dicData["UPOSITION"].ToString();
                    user.Remark   = dicData["UREMARK"].ToString();
                    string aa = SysCommon.Authorize.AuthorizeClass.ComputerSecurity(password.ToLower());
                    if (user.Password.Equals(SysCommon.Authorize.AuthorizeClass.ComputerSecurity(password.ToLower())))
                    {
                        Mod.v_AppUser = user;
                        //读取系统权限XML
                        XmlDocument docXml = new XmlDocument();
                        if (!File.Exists(Mod.m_SysXmlPath))
                        {
                            return(false);
                        }
                        docXml.Load(Mod.m_SysXmlPath);
                        Mod.v_SystemXml           = docXml;
                        Mod.v_ListUserPrivilegeID = GetUserPrivilege(user, gisDb, out eError);
                        Mod.v_ListUserdataPriID   = GetUserDataPri(user, gisDb, out eError);
                        return(true);
                    }
                }
                return(false);
            }
            catch (Exception ex)
            {
                eError = ex;
                return(false);
            }
        }
Example #11
0
        /// <summary>
        /// 登陆控制
        /// </summary>
        /// <returns></returns>
        public static bool CheckLogin()
        {
            //判断配置文件是否存在
            bool blnCanConnect    = false;
            bool blnCurCanConnect = false;

            if (File.Exists(Mod.v_ConfigPath))
            {
                SysCommon.Gis.SysGisDB vgisDb = new SysGisDB();
                SysCommon.Authorize.AuthorizeClass.GetConnectInfo(Mod.v_ConfigPath, out Mod.Server, out Mod.Instance, out Mod.Database, out Mod.User, out Mod.Password, out Mod.Version, out Mod.dbType);
                blnCanConnect = CanOpenConnect(vgisDb, Mod.dbType, Mod.Server, Mod.Instance, Mod.Database, Mod.User, Mod.Password, Mod.Version);
                Mod.TempWks   = vgisDb.WorkSpace;

                //判断现实库的连接
                //string strCurServer, strCurType, strCurInstance, strCurDatabase, strCurUser, strCurPassword, strCurVersion;
                //SysCommon.Authorize.AuthorizeClass.GetCurWks(vgisDb.WorkSpace, out Mod.CurServer, out Mod.CurInstance, out Mod.CurDatabase, out Mod.CurUser, out Mod.CurPassword, out Mod.CurVersion, out Mod.CurdbType);
                //blnCurCanConnect = CanOpenConnect(vgisDb, Mod.CurdbType, Mod.CurServer, Mod.CurInstance, Mod.CurDatabase, Mod.CurUser, Mod.CurPassword, Mod.CurVersion);
                //Mod.CurWks = vgisDb.WorkSpace;
            }

            //无法连接则调配置窗体
            if ((!blnCanConnect))
            {
                //不存在,调数据配置窗体,并保存配置文件
                frmDBSet frmSet = new frmDBSet();
                if (frmSet.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    blnCanConnect = true;
                }
                else
                {
                    blnCanConnect = false;
                }
            }

            //if (!blnCurCanConnect)
            //{
            //    if (MessageBox.Show("用地库连接信息出现错误,请与管理员联系。是否操作继续?" + Environment.NewLine + "(如果你为管理员,请进入系统进行正式库连接信息调整)", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
            //    {
            //        return false;
            //    }
            //}

            //存在,调用登陆窗体
            if (blnCanConnect)
            {
                frmLogin frmLogin = new frmLogin(Mod.dbType);
                if (frmLogin.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    if (frmLogin.LoginSuccess)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Example #12
0
        public override void OnClick()
        {
            // *********************************************
            // *cyf
            // *modify
            // *读取系统维护库连接信息
            // *20110602
            #region 原有代码
            ////执行添加数据库操作
            //XmlDocument XmlDoc = new XmlDocument();
            //string sConnect = string.Empty;
            //if (File.Exists(ModuleData.v_AppDBConectXml))
            //{
            //    XmlDoc.Load(ModuleData.v_AppDBConectXml);
            //    XmlElement ele = XmlDoc.SelectSingleNode(".//系统维护库连接信息") as XmlElement;
            //    if (ele != null)
            //    {
            //        try
            //        {
            //            sConnect = ele.GetAttribute("连接字符串");
            //        }
            //        catch
            //        {
            //            SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "获取系统维护库连接信息失败");
            //            return;
            //        }
            //    }
            //    else { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "获取系统维护库连接信息失败"); return; }
            //}
            //else
            //{
            //    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "缺失系统维护库连接信息文件:"+ModuleData.v_AppDBConectXml);
            //    return;
            //}
            //frmAddNewDB AddNewDB = new frmAddNewDB(SysCommon.enumDBConType.ORACLE, SysCommon.enumDBType.ORACLE,sConnect,EnumUpdateType.New.ToString());
            //AddNewDB.ShowDialog();
            #endregion

            //判断配置文件是否存在
            bool blnCanConnect            = false;
            SysCommon.Gis.SysGisDB vgisDb = new SysGisDB();
            if (File.Exists(ModuleData.v_ConfigPath))
            {
                //获得系统维护库连接信息
                SysCommon.Authorize.AuthorizeClass.GetConnectInfo(ModuleData.v_ConfigPath, out ModuleData.Server, out ModuleData.Instance, out ModuleData.Database, out ModuleData.User, out ModuleData.Password, out ModuleData.Version, out ModuleData.dbType);
                //连接系统维护库
                blnCanConnect = CanOpenConnect(vgisDb, ModuleData.dbType, ModuleData.Server, ModuleData.Instance, ModuleData.Database, ModuleData.User, ModuleData.Password, ModuleData.Version);
            }
            else
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "缺失系统维护库连接信息文件:" + ModuleData.v_ConfigPath + "/n请重新配置");
                return;
            }
            if (!blnCanConnect)
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "系统能够维护库连接失败,请检查!");
                return;
            }
            ModuleData.TempWks = vgisDb.WorkSpace;
            if (this.WriteLog)
            {
                Plugin.LogTable.Writelog(Caption);//xisheng 2011.07.09 增加日志
            }
            frmAddNewDB AddNewDB = new frmAddNewDB(vgisDb.WorkSpace, EnumUpdateType.New.ToString());
            AddNewDB.ShowDialog();
            // *end
            // ***********************************************************
        }
Example #13
0
        public override void OnClick()
        {
            //判断配置文件是否存在
            bool        blnCanConnect = false;
            SysGisTable DeleteTable   = new SysGisTable(ModuleData.TempWks);

            SysCommon.Gis.SysGisDB vgisDb = new SysGisDB();
            Exception ex = null;

            if (File.Exists(ModuleData.v_ConfigPath))
            {
                //获得系统维护库连接信息
                SysCommon.Authorize.AuthorizeClass.GetConnectInfo(ModuleData.v_ConfigPath, out ModuleData.Server, out ModuleData.Instance, out ModuleData.Database, out ModuleData.User, out ModuleData.Password, out ModuleData.Version, out ModuleData.dbType);
                //连接系统维护库
                blnCanConnect = CanOpenConnect(vgisDb, ModuleData.dbType, ModuleData.Server, ModuleData.Instance, ModuleData.Database, ModuleData.User, ModuleData.Password, ModuleData.Version);
            }
            else
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "缺失系统维护库连接信息文件:" + ModuleData.v_ConfigPath + "/n请重新配置");
                return;
            }
            if (!blnCanConnect)
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "系统能够维护库连接失败,请检查!");
                return;
            }
            ModuleData.TempWks = vgisDb.WorkSpace;
            if (this.WriteLog)
            {
                Plugin.LogTable.Writelog(Caption);//xisheng 2011.07.09 增加日志
            }
            //判断是否选择要删除的数据库 ygc 2012-9-3
            if (m_Hook.ProjectTree.SelectedNode == null)
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "请选择要删除的数据库!");
                return;
            }
            //判断选择的数据库类型下是否存在数据库连接 ygc 2012-9-3
            string IdValues = "";

            try
            {
                IdValues = DeleteTable.GetFieldValue("DATABASETYPEMD", "ID", "databasetype='" + m_Hook.ProjectTree.SelectedNode.Text + "'", out ex).ToString();
            }
            catch
            {
                MessageBox.Show("请选择正确的数据库!", "错误");
                return;
            }
            //string Id = DeleteTable.GetFieldValue("DATABASEMD", "ID", "databasetypeid='" + IdValues + "'",out ex).ToString ();
            if (IdValues == "" && IdValues == null)
            {
                MessageBox.Show("", "");
                return;
            }
            if (DeleteTable.ExistData("DATABASEMD", "databasetypeid='" + IdValues + "'"))
            {
                DialogResult  result  = MessageBox.Show(" 要删除的数据库类型下存在数据库连接,是否一起删除这些连接?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                List <object> listOid = DeleteTable.GetFieldValues("DATABASEMD", "ID", "databasetypeid='" + IdValues + "'", out ex);
                if (result == DialogResult.OK)
                {
                    DialogResult result1 = MessageBox.Show("确定删除数据库类型" + m_Hook.ProjectTree.SelectedNode.Text + "?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                    if (result1 == DialogResult.OK)
                    {
                        try
                        {
                            bool flag1 = DeleteTable.DeleteRows("DATABASEMD", "databasetypeid='" + IdValues + "'", out ex);
                            //卸载数据库连接
                            for (int i = 0; i < listOid.Count; i++)
                            {
                                ModuleData.v_DataBaseProPanel.RemoveDataBasePro(m_Hook.ProjectTree.SelectedNode.Text, Convert.ToInt64(listOid[i].ToString()));
                            }
                            bool flag2 = DeleteTable.DeleteRows("DATABASETYPEMD", "databasetype='" + m_Hook.ProjectTree.SelectedNode.Text + "'", out ex);
                            if (flag1 && flag2)
                            {
                                (ModuleData.v_AppDBIntegra.MainUserControl as UserControlDBIntegra).InitProjectTree();
                                MessageBox.Show("成功删除数据库类型!", "提示");
                            }
                        }
                        catch
                        {
                            SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", ex.ToString());
                        }
                    }
                    else
                    {
                        return;
                    }
                }
                else
                {
                    return;
                }
            }
            else
            {
                DialogResult result1 = MessageBox.Show("确定删除数据库类型" + m_Hook.ProjectTree.SelectedNode.Text + "?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (result1 == DialogResult.OK)
                {
                    try
                    {
                        bool flag = DeleteTable.DeleteRows("DATABASETYPEMD", "databasetype='" + m_Hook.ProjectTree.SelectedNode.Text + "'", out ex);
                        if (flag)
                        {
                            (ModuleData.v_AppDBIntegra.MainUserControl as UserControlDBIntegra).InitProjectTree();
                            MessageBox.Show("成功删除数据库类型!", "提示");
                        }
                    }
                    catch
                    {
                        SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", ex.ToString());
                    }
                }
                else
                {
                    return;
                }
            }
            Plugin.LogTable.Writelog(" 删除数据库类型【" + m_Hook.ProjectTree.SelectedNode.Text + "】成功!");
        }