Beispiel #1
0
        private static string GetJFMCChineseName(string strValue, string strJFMC)
        {
            string      strDMChineseName = strValue;
            SysGisTable mSystable        = new SysGisTable(m_Workspace);
            Exception   err = null;
            Dictionary <string, object> dic = mSystable.GetRow("行政区字典表", "CODE='" + strValue.Substring(0, 9) + "'", out err);

            if (dic != null)
            {
                strDMChineseName = dic["NAME"] + strJFMC + "(" + strValue + ")";
            }
            return(strDMChineseName);
        }
Beispiel #2
0
        //初始化树
        public void InitTree()
        {
            ////创建根节点
            treeView1.Nodes.Clear();
            TreeNode tparent;
            TreeNode childNode;

            tparent            = new TreeNode();
            tparent.Text       = "成果数据目录";
            tparent.Tag        = 0;
            tparent.ImageIndex = 0;
            tparent.Expand();
            tparent.ExpandAll();
            treeView1.Nodes.Add(tparent);

            Exception exError0 = null;
            Exception exError  = null;

            //获取数据源中的RESULTDIR中的PATHFILE

            if (m_Workspace != null)
            {
                SysGisTable sysTable = new SysGisTable(m_Workspace);

                ///获得对应成果数据上传的目标路径
                if (sysTable.ExistData("RESULTDIR", null))
                {
                    //获取每一行
                    List <Dictionary <string, object> > pLst = sysTable.GetRows("RESULTDIR", null, out exError);

                    List <object> pListFileName = sysTable.GetFieldValues("RESULTDIR", "PATHNAME", null, out exError0);
                    if (pListFileName.Count > 0)
                    {
                        //获取每一列
                        for (int ii = 0; ii < pLst.Count; ii++)
                        {
                            childNode      = new TreeNode();
                            childNode.Text = pListFileName[ii].ToString();

                            childNode.Expand();
                            childNode.Tag                = 1;
                            childNode.ImageIndex         = 1;
                            childNode.SelectedImageIndex = 2;
                            tparent.Nodes.Add(childNode);
                        }
                    }
                }
            }

            treeView1.Refresh();
        }
Beispiel #3
0
        private void comboBoxDataSource_DropDown(object sender, EventArgs e)
        {
            SysGisTable sysTable = new SysGisTable(m_WS);
            //Dictionary<string, object> dicData = new Dictionary<string, object>();
            Exception eError;
            //初始化数据源
            List <object> ListDatasource = sysTable.GetFieldValues("DATABASEMD", "DATABASENAME", "DATAFORMATID=1", out eError);

            this.comboBoxDataSource.Items.Clear();
            foreach (object datasource in ListDatasource)
            {
                this.comboBoxDataSource.Items.Add(datasource.ToString());
            }
        }
Beispiel #4
0
 private void toolStripMenuDel_Click(object sender, EventArgs e)
 {
     try
     {
         //删除记录
         Exception eError      = null;
         string    strTreeText = treeView1.SelectedNode.Text;
         if (m_Workspace != null)
         {
             //增加删除提示 ygc 2012-9-6
             DialogResult result = MessageBox.Show("该操作将会删除该成果目录及该成果目录下所有成果文件,确定删除?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
             if (result != DialogResult.OK)
             {
                 return;
             }
             //判断名称是否存在
             string      strPath  = "";
             SysGisTable sysTable = new SysGisTable(m_Workspace);
             if (sysTable.ExistData("RESULTDIR", null))
             {
                 string strComputerIp = sysTable.GetFieldValue("RESULTDIR", "COMPUTERIP", "PATHNAME='" + strTreeText + "'", out eError).ToString();
                 if (PingEx(strComputerIp))
                 {
                     //删除实际文件夹  获取 DATADIR
                     strPath = sysTable.GetFieldValue("RESULTDIR", "DATADIR", "PATHNAME='" + strTreeText + "'", out eError).ToString();
                     if (Directory.Exists(strPath))
                     {
                         Directory.Delete(strPath, true);
                     }
                     //获取成果文件 并将其从数据库中删除 ygc 2012-9-6
                     List <object> fileList = sysTable.GetFieldValues("RESULTLIST", "DATATYPE", "DATATYPE='" + strTreeText + "'", out eError);
                     if (fileList.Count > 0)
                     {
                         sysTable.DeleteRows("RESULTLIST", "DATATYPE='" + fileList[0].ToString() + "'", out eError);
                     }//end
                     sysTable.DeleteRows("RESULTDIR", "PATHNAME='" + strTreeText + "'", out eError);
                     InitTree();
                 }
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.ToString());
         return;
     }
     //新增操作成功提示 ygc 2012-9-6
     MessageBox.Show("删除该成果目录成功!", "提示");
 }
Beispiel #5
0
        public string GetDescrib(string str)
        {
            SysGisTable sysTable            = new SysGisTable(m_TempWorkspace);
            Exception   err                 = null;
            Dictionary <string, object> dic = sysTable.GetRow("标准图层代码表", "CODE='" + str + "'", out err);
            string strreturn                = "";

            if (dic != null)
            {
                if (dic.ContainsKey("NAME"))
                {
                    strreturn = dic["NAME"].ToString();
                }
            }
            sysTable = null;
            return(strreturn);
        }
Beispiel #6
0
        //从数据库向本地拷贝图层树
        public static bool CopyResultFileTreeXmlFromDataBase(IWorkspace pWorkspace, string xmlpath)
        {
            Exception   eError   = null;
            SysGisTable sysTable = new SysGisTable(pWorkspace);
            //读取数据库表内容
            object objXml = sysTable.GetFieldValue("LAYERTREE_XML", "LAYERTREE", "NAME='RESULTFILETREE'", out eError);

            if (objXml == null)
            {
                return(false);
            }
            //获取xml文档
            XmlDocument pXml = objXml as XmlDocument;

            //保存到本地
            pXml.Save(xmlpath);
            return(true);
        }
Beispiel #7
0
 private void FrmAddDepartment_Load(object sender, EventArgs e)
 {
     if (m_IsUpdate)
     {
         this.Text  = m_FrmText;
         btnOk.Text = m_BtnText;
         SysGisTable ksTable = new SysGisTable(Fan.Plugin.ModuleCommon.TmpWorkSpace);
         Exception   error   = null;
         Dictionary <string, object> newdic = new Dictionary <string, object>();
         newdic = ksTable.GetRow("USER_DEPARTMENT", "DEPARTMENTID='" + m_id + "'", out error);
         if (newdic != null && newdic.Count != 0)
         {
             txtDepartmentName.Text = newdic["DEPARTMENTNAME"].ToString();
             txtFunction.Text       = newdic["DEPARTMENTINFO"].ToString();
             txtRemark.Text         = newdic["DEPARTMENTMARK"].ToString();
         }
     }
 }
Beispiel #8
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (m_pWorkspace == null)
            {
                return;
            }
            if (txtSolutionName.Text == "")
            {
                MessageBox.Show("请输入改解决方案的名称!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                txtSolutionName.Focus();
                return;
            }
            m_Name        = txtSolutionName.Text;
            m_Description = RichTxtDescription.Text.Trim();
            if (this.CheckShared.Checked)
            {
                m_Share = true;
            }
            else
            {
                m_Share = false;
            }
            SysGisTable sysTable = new SysGisTable(m_pWorkspace);
            Exception   eError   = null;

            m_Condition = SysCommon.ModSysSetting._MxdListTable_NameField + "='" + this.txtSolutionName + "' and " + SysCommon.ModSysSetting._MxdListTable_UserField + "='" + user + "'";
            object objValue = sysTable.GetFieldValue(SysCommon.ModSysSetting._MxdListTable, SysCommon.ModSysSetting._MxdListTable_MapField, m_Condition, out eError);

            sysTable = null;
            //判断方案名称是否重复 ygc 2012-9-7
            if (objValue != null)
            {
                DialogResult pRes = MessageBox.Show("该显示方案名已存在,是否覆盖?", "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (pRes == DialogResult.Yes)
                {
                    this.DialogResult = DialogResult.OK;
                }
                else
                {
                    this.DialogResult = DialogResult.Cancel;
                }
            }
            this.DialogResult = DialogResult.OK;
        }
Beispiel #9
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            Exception eError = null;

            if (_pUC != null)
            {
                _pUC.RemoveNodeFromMap(_node);
            }
            //记录默认的数据源,以备下次设置时默认显示
            ModuleMap._DefaultDBsource = this.comboBoxDataSource.Text;
            //打开xml文档
            XmlDocument layerxmldoc = new XmlDocument();

            layerxmldoc.Load(_xmlpath);
            //查找xml中的对应节点
            string strTag   = _node.Tag.ToString();
            string NodeName = strTag;

            if (strTag.Contains("DataDIR"))
            {
                NodeName = "DataDIR";
            }
            string  strSearch = "//" + NodeName + "[@NodeKey='" + _node.Name + "']";
            XmlNode pxmlnode  = layerxmldoc.SelectSingleNode(strSearch);

            SysGisTable sysTable = new SysGisTable(_tmpWorkspace);
            //end
            object objDbsource = sysTable.GetFieldValue("DATABASEMD", "ID", "DATABASENAME='" + this.comboBoxDataSource.Text + "'", out eError);

            string strDBsource = "";

            if (objDbsource != null)
            {
                strDBsource = objDbsource.ToString();
            }
            SetDbsourceOfXmlnode(_node, layerxmldoc, strDBsource, _dataWorkspace, _ListDataset, _ListTypeOfDataset);
            layerxmldoc.Save(_xmlpath);
            if (_pUC != null)
            {
                _pUC.AddNodeToMap(_node);
            }
            this.Hide();
            this.DialogResult = DialogResult.OK;
        }
        /// <summary>
        /// 获取管理系统中所有的要素集名称
        /// </summary>
        /// <returns></returns>
        private List <string> GetAllFeatureClassName()
        {
            ///存储所用导入管理系统中的要素集名称
            List <string> LstFeatureClassName = new List <string>();

            try
            {
                SysGisTable sysTable = new SysGisTable(m_Workspace);
                Exception   eError;
                ///存储所用导入管理系统中数据库的链接信息
                List <object> Lstconninfostr = new List <object>();
                ///获取所用导入管理系统中数据库的链接信息
                Lstconninfostr = sysTable.GetFieldValues("DATABASEMD", "CONNECTIONINFO", null, out eError);
                for (int i = 0; i < Lstconninfostr.Count; i++)
                {
                    try
                    {
                        string conninfostr = Lstconninfostr[i].ToString();
                        int    index6      = conninfostr.LastIndexOf("|");
                        string strDatasets = conninfostr.Substring(index6 + 1);
                        ///获取该链接中已导入的管理系统的要素集名称
                        string[] strTemp = strDatasets.Split(new char[] { ',' });
                        try
                        {
                            for (int j = 0; j < strTemp.Length; j++)
                            {
                                if (strTemp[j] != "")
                                {
                                    if (!LstFeatureClassName.Contains(strTemp[j].ToString()))
                                    {
                                        LstFeatureClassName.Add(strTemp[j].ToString());
                                    }
                                }
                            }
                        }
                        catch { }
                    }
                    catch { }
                }
                return(LstFeatureClassName);
            }
            catch { return(LstFeatureClassName); }
        }
Beispiel #11
0
        private void WriteMapToDB(IMap pMap, Dictionary <string, object> pDic, string strCondition)
        {
            //linyand add set map SpatialReference
            //pMap.SpatialReference = LoadProjectedCoordinateSystem();

            IPersistStream pPersistStream = pMap as IPersistStream;
            IStream        pStream        = new XMLStreamClass();

            pPersistStream.Save(pStream, 0);

            IXMLStream pXMLStream = pStream as IXMLStream;

            byte[]            RenderByte        = pXMLStream.SaveToBytes();
            IMemoryBlobStream pMemoryBlobStream = new MemoryBlobStreamClass();

            pMemoryBlobStream.ImportFromMemory(ref RenderByte[0], (uint)RenderByte.GetLength(0));


            pDic.Add(SysCommon.ModSysSetting._MxdListTable_MapField, pMemoryBlobStream);
            //采用更新blob字段的方法
            SysGisTable sysTable = new SysGisTable(Plugin.ModuleCommon.TmpWorkSpace);
            Exception   eError   = null;
            object      objValue = sysTable.GetFieldValue(SysCommon.ModSysSetting._MxdListTable, SysCommon.ModSysSetting._MxdListTable_MapField, strCondition, out eError);
            bool        flag     = false;

            if (objValue == null)
            {
                flag = sysTable.NewRow(SysCommon.ModSysSetting._MxdListTable, pDic, out eError);
            }
            else
            {
                flag = sysTable.UpdateRow(SysCommon.ModSysSetting._MxdListTable, strCondition, pDic, out eError);
            }
            sysTable = null;
            if (flag)
            {
                MessageBox.Show("保存显示方案成功!", "提示");
            }
            else
            {
                MessageBox.Show("保存显示方案失败", "提示");
            }
        }
Beispiel #12
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);
            }
        }
Beispiel #13
0
        //ygc 20130319 初始化科室下拉框
        private void InitilCbDepartment()
        {
            List <Dictionary <string, object> > listDepartment = new List <Dictionary <string, object> >();
            Exception   ex       = null;
            SysGisTable sysTable = new SysGisTable(Fan.Plugin.ModuleCommon.TmpWorkSpace);

            listDepartment = sysTable.GetRows("USER_DEPARTMENT", "", out ex);
            if (listDepartment != null || listDepartment.Count != 0)
            {
                for (int i = 0; i < listDepartment.Count; i++)
                {
                    Dictionary <string, object> newdic = new Dictionary <string, object>();
                    newdic = listDepartment[i];
                    cbDepartment.Items.Add(newdic["DEPARTMENTNAME"]).ToString();
                }
            }
            if (cbDepartment.Items.Count != 0)
            {
                cbDepartment.SelectedIndex = 0;
            }
        }
Beispiel #14
0
        private void NewRow(string strFeatureClssName)
        {
            Exception   exError  = null;
            SysGisTable sysTable = new SysGisTable(m_Workspace);

            try
            {
                Dictionary <string, object> dicData = new Dictionary <string, object>();
                //不存在则添加
                if (!sysTable.ExistData("METADATA_LIB", "数据库名称='" + strFeatureClssName + "'"))
                {
                    dicData.Add("数据库名称", strFeatureClssName);
                    if (sysTable.NewRow("METADATA_LIB", dicData, out exError))
                    {
                        return;
                    }
                }
            }
            catch { }
            finally { sysTable = null; }
        }
Beispiel #15
0
        private void AddGroup_Load(object sender, EventArgs e)
        {
            Exception     exError;
            SysGisTable   sysTable    = new SysGisTable(ModData.gisDb);
            List <object> typelist    = sysTable.GetFieldValues("ROLETYPE", "ROLETYPE", "", out exError);
            List <object> projectlist = sysTable.GetFieldValues("PROJECTGROUP", "PROJECTNAME", "", out exError);

            foreach (object typeitem in typelist)
            {
                this.comboBoxRoleType.Items.Add(typeitem.ToString());
            }
            foreach (object projectitem in projectlist)
            {
                this.comboBoxProjectgroup.Items.Add(projectitem.ToString());
            }
            if (isUpdate)
            {
                btnAddRole.Text      = "更新";
                this.txtRole.Text    = _role.Name;
                this.txtComment.Text = _role.Remark;


                if (!_role.TYPEID.Equals(""))
                {
                    string typeName = sysTable.GetFieldValue("ROLETYPE", "ROLETYPE", "TYPEID='" + _role.TYPEID + "'", out exError).ToString();
                    this.comboBoxRoleType.Text = typeName;
                }
                if (!_role.PROJECTID.Equals(""))
                {
                    string projectName = sysTable.GetFieldValue("PROJECTGROUP", "PROJECTNAME", "PROJECTID='" + _role.PROJECTID + "'", out exError).ToString();
                    this.comboBoxProjectgroup.Text = projectName;
                }
            }
            else
            {
                btnAddRole.Text = "添加";
            }
            this.txtRole.Focus();
        }
Beispiel #16
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;
            }
        }
Beispiel #17
0
        private void bttCommit_Click(object sender, EventArgs e)
        {
            Exception   exError  = null;
            SysGisTable sysTable = new SysGisTable(m_Workspace);
            Dictionary <string, object> dicData = new Dictionary <string, object>();
            string strPassword = SysCommon.Authorize.AuthorizeClass.ComputerSecurity(txtNewPassword.Text.Trim());

            //查找当前用户名是否存在
            if (sysTable.ExistData("USER_INFO", "NAME='" + m_AppFormRef.ConnUser.Name + "'"))
            {
                dicData.Add("UPWD", strPassword);
                if (sysTable.UpdateRow("USER_INFO", "NAME='" + m_AppFormRef.ConnUser.Name + "'", dicData, out exError))
                {
                    ///记录新的密码
                    m_AppFormRef.ConnUser.Password = strPassword;
                    MessageBox.Show("密码修改成功", "提示!");
                    this.Close();
                }
                else
                {
                    MessageBox.Show("密码修改失败", "提示!");
                }
            }
        }
Beispiel #18
0
        /// <summary>
        /// 添加或更新一条记录
        /// </summary>
        /// <param name="pSysTable"></param>
        /// <param name="strType"></param>
        /// <param name="strFilePath"></param>
        /// <param name="eError"></param>
        private void CreateRow(SysGisTable pSysTable, string strType, string strFilePath, out Exception exError)
        {
            Dictionary <string, object> dicData = new Dictionary <string, object>();

            dicData.Add("DATATYPE", strType);
            dicData.Add("DATANAME", System.IO.Path.GetFileName(strFilePath));
            dicData.Add("DATAPATH", strFilePath);
            //判断是更新还是添加
            //不存在则添加,已存在则更新
            if (!pSysTable.ExistData("RESULTLIST", "DATANAME='" + System.IO.Path.GetFileName(strFilePath) + "'"))
            {
                if (!pSysTable.NewRow("RESULTLIST", dicData, out exError))
                {
                    return;
                }
            }
            else
            {
                if (!pSysTable.UpdateRow("RESULTLIST", "DATANAME='" + System.IO.Path.GetFileName(strFilePath) + "'", dicData, out exError))
                {
                    return;
                }
            }
        }
Beispiel #19
0
        //added by chulili 20110802褚丽丽添加函数,根据nodeKey获取地物类,直接读取数据源连接信息,读取地物类
        public static IFeatureClass GetFeatureClassByNodeKey(string strNodeKey)
        {
            if (strNodeKey.Equals(""))
            {
                return(null);
            }
            //目录树路径变量:_layerTreePath
            XmlDocument pXmldoc = new XmlDocument();

            if (!File.Exists(LayerXMLpath))
            {
                return(null);
            }
            //打开展示图层树,获取图层节点
            pXmldoc.Load(LayerXMLpath);
            string  strSearch = "//Layer[@NodeKey=" + "'" + strNodeKey + "'" + "]";
            XmlNode pNode     = pXmldoc.SelectSingleNode(strSearch);

            if (pNode == null)
            {
                return(null);
            }
            IFeatureClass pFeaClass = null;
            //获取图层名,数据源id
            string strFeaClassName = "";
            string strDBSourceID   = "";

            try
            {
                strFeaClassName = pNode.Attributes["Code"].Value;
                strDBSourceID   = pNode.Attributes["ConnectKey"].Value;
            }
            catch
            { }
            //根据数据源id,获取数据源信息
            SysGisTable sysTable    = new SysGisTable(Plugin.ModuleCommon.TmpWorkSpace);
            Exception   eError      = null;
            object      objConnstr  = sysTable.GetFieldValue("DATABASEMD", "CONNECTIONINFO", "ID=" + strDBSourceID, out eError);
            string      conninfostr = "";

            if (objConnstr != null)
            {
                conninfostr = objConnstr.ToString();
            }
            object objType = sysTable.GetFieldValue("DATABASEMD", "DATAFORMATID", "ID=" + strDBSourceID, out eError);
            int    type    = -1;

            if (objType != null)
            {
                type = int.Parse(objType.ToString());
            }
            //根据数据源连接信息,获取数据源连接
            IWorkspace pWorkspace = GetWorkSpacefromConninfo(conninfostr, type);

            if (pWorkspace == null)
            {
                return(null);
            }
            //打开地物类
            IFeatureWorkspace pFeaWorkSpace = pWorkspace as IFeatureWorkspace;

            //IFeatureClass pFeaClass = null;
            try
            {
                pFeaClass = pFeaWorkSpace.OpenFeatureClass(strFeaClassName);
            }
            catch
            { }
            return(pFeaClass);
        }
Beispiel #20
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);
            }
        }
Beispiel #21
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);
            }
        }
Beispiel #22
0
        private void btnAddUser_Click(object sender, EventArgs e)
        {
            Exception exError = null;

            errorProvider.Clear();
            try
            {
                //验证
                if (string.IsNullOrEmpty(this.txtUser.Text))
                {
                    errorProvider.SetError(txtUser, "用户名简称不能为空!");
                    return;
                }
                else if (string.IsNullOrEmpty(this.txtTrueName.Text))
                {
                    errorProvider.SetError(txtTrueName, "用户真实名不能为空!");
                    return;
                }
                else if (string.IsNullOrEmpty(this.txtPassword.Text))
                {
                    if (!isUpdate)
                    {
                        errorProvider.SetError(txtPassword, "密码不能为空!");
                        return;
                    }
                }
                else if (string.IsNullOrEmpty(this.comboSex.Text))
                {
                    errorProvider.SetError(comboSex, "性别不能为空!");
                    return;
                }
                else if (string.IsNullOrEmpty(this.txtPosition.Text))
                {
                    // errorProvider.SetError(txtPosition, "职称不能为空!");
                    // return;
                }
                //* / //20111102 wgf
                ModData.gisDb.StartTransaction(out exError);
                SysGisTable sysTable = new SysGisTable(ModData.gisDb);
                Dictionary <string, object> dicData = new Dictionary <string, object>();
                dicData.Add("userid", this.txtUser.Text.Trim() + DateTime.Now.ToString("yyyyMMddHHmmss"));
                dicData.Add("name", this.txtUser.Text.Trim());
                //如果是更新用户 并且用户密码框为空 则不更新密码
                if (!(isUpdate && this.txtPassword.Text.Trim() == ""))
                {
                    dicData.Add("upwd", Fan.Common.Authorize.AuthorizeClass.ComputerSecurity(this.txtPassword.Text.Trim()));
                }

                dicData.Add("usex", (this.comboSex.SelectedItem as ComboBoxItem).Value);
                dicData.Add("uposition", this.txtPosition.Text.Trim());
                dicData.Add("uremark", this.txtComment.Text.Trim());
                dicData.Add("TRUTHNAME", this.txtTrueName.Text);

                //新增科室 ygc20130319
                SysGisTable ksTable = new SysGisTable(Fan.Plugin.ModuleCommon.TmpWorkSpace);
                Exception   ex      = null;
                Dictionary <string, object> newdic = new Dictionary <string, object>();
                newdic = ksTable.GetRow("USER_DEPARTMENT", "DEPARTMENTNAME='" + this.cbDepartment.Text + "'", out ex);
                if (newdic.Count > 0)
                {
                    dicData.Add("USERDEPARTMENT", newdic["DEPARTMENTID"].ToString());//ygc 20130319 增加科室
                }
                //end
                //wgf 增加日期  20111102
                if (checkBoxDate.Checked == true)
                {
                    // dateTimePicker.get
                    string strDate = dateTimePicker.Value.Year.ToString() + dateTimePicker.Value.Month.ToString() + dateTimePicker.Value.Day.ToString();
                    dicData.Add("ENDDATE", dateTimePicker.Text);
                }
                //end
                //ygc 20130420 修改提取面积
                // if (txtExportArea.Text == "")
                // {
                dicData.Add("EXPORTAREA", "-1");
                //  }
                //  else
                //  {
                //     dicData.Add("EXPORTAREA", txtExportArea.Text);
                //  }
                //判断是更新还是添加
                if (isUpdate)
                {
                    //dicData.Remove("name");changed by xisheng 2011.06.30 可以修改名字
                    dicData.Remove("userid");
                    if (!sysTable.UpdateRow("user_info", "userid='" + _user.IDStr + "'", dicData, out exError))
                    {
                        ErrorHandle.ShowFrmErrorHandle("提示", "更新失败!" + exError.Message);
                        return;
                    }
                }
                else
                {
                    if (!sysTable.ExistData("user_info", "NAME='" + txtUser.Text.Trim() + "'"))
                    {
                        if (!sysTable.NewRow("user_info", dicData, out exError))
                        {
                            ErrorHandle.ShowFrmErrorHandle("提示", "添加失败!" + exError.Message);
                            return;
                        }
                    }
                    else
                    {
                        ErrorHandle.ShowFrmErrorHandle("提示", "已经存在此用户简称,添加失败!");
                        return;
                    }
                }
                //ygc 20130420 添加提取范围控制
                if (m_listExtentCode != null)
                {
                    //先删除原有的权限
                    try
                    {
                        if (isUpdate)
                        {
                            sysTable.DeleteRows("USER_EXPORT", "USERID='" + user.IDStr + "'", out exError);
                        }
                    }
                    catch { }
                    for (int i = 0; i < m_listExtentCode.Count; i++)
                    {
                        newdic = new Dictionary <string, object>();
                        if (isUpdate)
                        {
                            newdic.Add("USERID", user.IDStr);
                        }
                        else
                        {
                            newdic.Add("USERID", dicData["userid"].ToString());
                        }
                        newdic.Add("EXPORTEXTENT", m_listExtentCode[i]);
                        newdic.Add("XIANNAME", m_listExtentName [i]);
                        sysTable.NewRow("USER_EXPORT", newdic, out exError);
                    }
                }
                ModData.gisDb.EndTransaction(true, out exError);
                this.DialogResult = DialogResult.OK;
            }
            catch (Exception ex)
            {
                exError = ex;
                ModData.gisDb.EndTransaction(false, out exError);
                if (exError != null)
                {
                    ErrorHandle.ShowFrmErrorHandle("提示", exError.Message);
                }
                else
                {
                    MessageBox.Show(ex.ToString(), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
        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 + "】成功!");
        }
Beispiel #24
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            ///获得上传成果数据的类型
            if (treeView1.SelectedNode == null)
            {
                MessageBox.Show("请在左边目录树中选择目标文件夹!", "提示!");
            }
            string strcmbType = treeView1.SelectedNode.Text;

            if (dataGrid.Rows.Count == 0)
            {
                MessageBox.Show("请添加" + strcmbType + "!", "提示!");
                return;
            }
            Exception   exError  = null;
            SysGisTable sysTable = new SysGisTable(m_Workspace);
            ///获得对应成果数据上传的目标路径
            string strUploading = null;

            if (sysTable.ExistData("RESULTDIR", "PATHNAME='" + strcmbType + "'"))
            {
                strUploading = sysTable.GetFieldValue("RESULTDIR", "DATADIR", "PATHNAME='" + strcmbType + "'", out exError).ToString();
            }
            if (strUploading == null || File.Exists(strUploading))
            {
                MessageBox.Show("请先配置成果数据目录!", "提示!");
                return;
            }

            SysCommon.CProgress vProgress = new SysCommon.CProgress("进度条");
            vProgress.EnableCancel    = false;//设置进度条
            vProgress.ShowDescription = true;
            vProgress.FakeProgress    = true;
            vProgress.TopMost         = true;
            vProgress.MaxValue        = dataGrid.RowCount;
            vProgress.ShowProgress();
            try
            {
                for (int i = 0; i < dataGrid.RowCount; i++)
                {
                    vProgress.ProgresssValue = i + 1;
                    if (dataGrid.Rows[i].Cells["CmnSelect"].Value.ToString() == true.ToString())
                    {
                        string strSource = dataGrid.Rows[i].Cells["CmnPath"].Value.ToString();
                        string strUpPath = strUploading + "\\" + System.IO.Path.GetFileName(strSource);
                        ///判断上传目标路径下是否已存在同名的文件
                        if (!File.Exists(strUpPath))
                        {
                            ////判断上传的文件是否存在
                            if (System.IO.File.Exists(strSource))
                            {
                                vProgress.SetProgress("正在上传数据:" + System.IO.Path.GetFileName(strSource));
                                ///文件拷贝
                                copyDirectory(strSource, strUpPath);
                                dataGrid.Rows[i].Cells["CmnState"].Value  = "已上传";
                                dataGrid.Rows[i].Cells["CmnSelect"].Value = false;
                                CreateRow(sysTable, strcmbType, strUpPath, out exError);
                            }
                            else
                            {
                                dataGrid.Rows[i].Cells["CmnState"].Value = "源文件不存在";
                            }
                        }
                        else
                        {
                            dataGrid.Rows[i].Cells["CmnState"].Value = "已存在同名文件";
                        }
                    }
                }
                vProgress.Close();
                sysTable = null;
            }
            catch { vProgress.Close(); }
        }
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (dataGrid.RowCount - 1 == 0)
            {
                MessageBox.Show("请输入数据库属性信息!", "提示!");
                return;
            }
            Exception   exError  = null;
            SysGisTable sysTable = new SysGisTable(m_Workspace);

            SysCommon.CProgress vProgress = new SysCommon.CProgress("进度条");
            vProgress.EnableCancel    = false;//设置进度条
            vProgress.ShowDescription = true;
            vProgress.FakeProgress    = true;
            vProgress.TopMost         = true;
            vProgress.MaxValue        = dataGrid.RowCount - 1;
            vProgress.ShowProgress();
            try
            {
                CheckerData();
                for (int i = 0; i < dataGrid.RowCount - 1; i++)
                {
                    vProgress.ProgresssValue = i + 1;
                    if (dataGrid.Rows[i].Cells["CmnSelect"].Value.ToString() == true.ToString())
                    {
                        string strSource                    = dataGrid.Rows[i].Cells["CmnPath"].Value.ToString();
                        string strFeatureClassName          = dataGrid.Rows[i].Cells["CmnFeatureClassName"].Value.ToString();
                        Dictionary <string, object> dicData = new Dictionary <string, object>();
                        ////判断上传的文件是否存在
                        if (System.IO.File.Exists(strSource))
                        {
                            //不存在则添加
                            if (!sysTable.ExistData("METADATA_LIB", "数据库名称='" + strFeatureClassName + "'"))
                            {
                                vProgress.SetProgress("正在上传数据:" + System.IO.Path.GetFileName(strSource));
                                dicData.Add("数据库名称", strFeatureClassName);
                                InitializeDic(strSource, ref dicData);
                                if (sysTable.NewRow("METADATA_LIB", dicData, out exError))
                                {
                                    dataGrid.Rows[i].Cells["CmnSelect"].Value = false;
                                    dataGrid.Rows[i].Cells["CmnState"].Value  = "数据录入完成";
                                }
                                else
                                {
                                    dataGrid.Rows[i].Cells["CmnState"].Value = "数据录入失败,请检查Excel文件格式是否正确";
                                }
                            }
                            else
                            {
                                dataGrid.Rows[i].Cells["CmnState"].Value = "该记录已存在,可进行更新";
                            }
                        }
                        else
                        {
                            dataGrid.Rows[i].Cells["CmnState"].Value = "数据库属性信息文件不存在";
                        }
                    }
                }
                vProgress.Close();
                sysTable = null;
            }
            catch { vProgress.Close(); }
        }
Beispiel #26
0
 private void frmNameRule_FormClosed(object sender, FormClosedEventArgs e)
 {
     mSystable = null;
 }
Beispiel #27
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (txtDepartmentName.Text == "")
            {
                MessageBox.Show("请输入科室名称!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            //if (txtFunction.Text == "")
            //{
            //    MessageBox.Show("请输入相应科室职能!","提示",MessageBoxButtons .OK ,MessageBoxIcon .Error);
            //    return;
            //}
            Exception Exerror = null;
            Dictionary <string, object> newdic = new Dictionary <string, object>();
            SysGisTable ksTable = new SysGisTable(Fan.Plugin.ModuleCommon.TmpWorkSpace);

            newdic.Add("DEPARTMENTNAME", txtDepartmentName.Text);
            //if (m_id != null && m_id != "")
            //{
            //    newdic.Add("DEPARTMENTID",m_id);
            //}
            newdic.Add("DEPARTMENTINFO", txtFunction.Text);
            newdic.Add("DEPARTMENTMARK", txtRemark.Text);
            //如果是更新
            if (m_IsUpdate)
            {
                if (m_id != null && m_id != "")
                {
                    if (!ksTable.UpdateRow("USER_DEPARTMENT", "DEPARTMENTID='" + m_id + "'", newdic, out Exerror))
                    {
                        ErrorHandle.ShowFrmErrorHandle("提示", "更新失败!" + Exerror.Message);
                        return;
                    }
                    else
                    {
                        MessageBox.Show("更新科室成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else
                {
                    MessageBox.Show("更新科室失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
            }
            //新建科室
            else
            {
                newdic.Add("DEPARTMENTID", Guid.NewGuid().ToString());
                if (!ksTable.ExistData("USER_DEPARTMENT", "DEPARTMENTNAME='" + txtDepartmentName.Text + "'"))
                {
                    if (!ksTable.NewRow("USER_DEPARTMENT", newdic, out Exerror))
                    {
                        ErrorHandle.ShowFrmErrorHandle("提示", "添加失败!" + Exerror.Message);
                        return;
                    }
                    else
                    {
                        MessageBox.Show("添加科室成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
                else
                {
                    MessageBox.Show("系统已存在该科室", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
            }
            this.DialogResult = DialogResult.OK;
        }
Beispiel #28
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            Exception eError = null;

            m_FeaLayer = axMapControl1.Map.get_Layer(0) as IFeatureLayer;
            IFeatureSelection pFeaSel = m_FeaLayer as IFeatureSelection;

            if (pFeaSel.SelectionSet == null || pFeaSel.SelectionSet.Count == 0)
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "请在图上选择范围!");
                return;
            }
            else
            {
                m_Geometry = GetFeaLayerGeometry(pFeaSel, m_FeaLayer);
            }
            if (m_Geometry == null)
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "请设置图幅数据范围!");
                return;
            }
            //对范围进行检查看该范围是否是本地工作库图幅数据的总范围……

            //将范围信息解析后写入XML中
            byte[] xmlByte      = xmlSerializer(m_Geometry);
            string base64String = Convert.ToBase64String(xmlByte);

            //XmlDocument DocXml = (m_AppGIS.ProjectTree.SelectedNode.Tag as XmlNode)
            //DocXml.Load(ModData.v_projectXML);
            XmlNode    ProNode   = m_AppGIS.ProjectTree.SelectedNode.Tag as XmlNode;//DocXml.SelectSingleNode(".//工程[@名称='" + m_AppGIS.ProjectTree.SelectedNode.Name + "']");
            XmlElement RangeElem = ProNode.SelectSingleNode(".//内容//图幅工作库//范围信息") as XmlElement;

            RangeElem.SetAttribute("范围", base64String);
            ProNode.OwnerDocument.Save(ModData.v_projectDetalXML);   //cyf 20110628

            //cyf 20110621 modify ;将范围信息存储到系统维护库当中
            #region 获取系统维护库连接信息,并连接系统维护库,将工作空间保存起来
            if (ModData.TempWks == null)
            {
                bool blnCanConnect            = false;
                SysCommon.Gis.SysGisDB vgisDb = new SysCommon.Gis.SysGisDB();
                if (File.Exists(ModData.v_ConfigPath))
                {
                    //获得系统维护库连接信息
                    SysCommon.Authorize.AuthorizeClass.GetConnectInfo(ModData.v_ConfigPath, out ModData.Server, out ModData.Instance, out ModData.Database, out ModData.User, out ModData.Password, out ModData.Version, out ModData.dbType);
                    //连接系统维护库
                    blnCanConnect = ModDBOperator.CanOpenConnect(vgisDb, ModData.dbType, ModData.Server, ModData.Instance, ModData.Database, ModData.User, ModData.Password, ModData.Version);
                }
                else
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "缺失系统维护库连接信息文件:" + ModData.v_ConfigPath + "/n请重新配置");
                    return;
                }
                if (!blnCanConnect)
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "系统能够维护库连接失败,请检查!");
                    return;
                }
                ModData.TempWks = vgisDb.WorkSpace;
            }
            if (ModData.TempWks == null)
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "获取系统维护库工作空间失败,请检查!");
                return;
            }
            #endregion
            ////将范围信息写入数据库
            //if (!File.Exists(ModData.v_DbInterConn)) return;

            ////读取系统维护库连接信息
            //XmlDocument xmlConnDoc = new XmlDocument();
            //xmlConnDoc.Load(ModData.v_DbInterConn);
            //XmlElement ele = xmlConnDoc.SelectSingleNode(".//系统维护库连接信息") as XmlElement;
            //if (ele == null) return;
            //string sConnect = ele.GetAttribute("连接字符串");//系统维护库连接字符串
            ////连接系统维护库
            //SysCommon.DataBase.SysTable pTable = new SysCommon.DataBase.SysTable();
            //pTable.SetDbConnection(sConnect, SysCommon.enumDBConType.ORACLE, SysCommon.enumDBType.ORACLE, out eError);
            //if (eError != null)
            //{
            //    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "提示,连接系统维护库失败!");
            //    return;
            //}
            if (m_AppGIS.ProjectTree.SelectedNode.Name.ToString().Trim() == "")
            {
                return;
            }

            ///原有更新ROW的方法
            //string upStr = "update DATABASEMD set DBPARA='" + base64String + "' where ID=" + Convert.ToInt32(m_AppGIS.ProjectTree.SelectedNode.Name.ToString().Trim());
            //pTable.UpdateTable(upStr, out eError);
            //if (eError != null)
            //{
            //    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "提示,更新图幅范围信息失败!");
            //    return;
            //}

            //现在的更新ROW xisheng changed 20111018
            SysGisTable sysTable = new SysGisTable(ModData.TempWks);
            Dictionary <string, object> dicData = new Dictionary <string, object>();
            dicData.Add("DBPARA", base64String);
            try { sysTable.UpdateRow("DATABASEMD", "ID='" + Convert.ToInt32(m_AppGIS.ProjectTree.SelectedNode.Name.ToString().Trim()) + "'", dicData, out eError); }
            catch
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "提示,更新图幅范围信息失败!+详细信息:" + eError.Message);
                return;
            }

            SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "完成范围信息的获取和存储!");
            //end
            this.Close();
        }
Beispiel #29
0
        //本地向数据库保存图层目录
        private bool ImportEagleEyset(IWorkspace pWorkspace, string strPath)
        {
            //判断各个参数是否有效
            if (pWorkspace == null)
            {
                return(false);
            }
            Exception     exError       = null;
            ITransactions pTransactions = null;

            //保存图层树(由本地向数据库保存)
            try
            {
                IMemoryBlobStream pBlobStream = new MemoryBlobStreamClass();
                ///读取路径下的mxd文件
                // System.IO.FileStream pFileStream = File.Create(strPath);
                //if (pFileStream == null) { return false; }
                // byte[] bytes = new byte[pFileStream.Length];
                // pBlobStream.ImportFromMemory(ref bytes[0], (uint)bytes.GetLength(0));
                // pFileStream.Close();
                // pFileStream.Dispose();
                ///读取路径下的mxd文件转化成MemoryBlobStreamClass
                pBlobStream.LoadFromFile(strPath);
                //启动事务
                pTransactions = (ITransactions)pWorkspace;
                if (!pTransactions.InTransaction)
                {
                    pTransactions.StartTransaction();
                }
                SysGisTable sysTable = new SysGisTable(pWorkspace);
                Dictionary <string, object> dicData = new Dictionary <string, object>();
                dicData.Add("SETTINGVALUE2", pBlobStream);
                dicData.Add("SETTINGNAME", "鹰眼图");
                //判断是更新还是添加
                //不存在则添加,已存在则更新
                if (!sysTable.ExistData("SYSSETTING", "SETTINGNAME='鹰眼图'"))
                {
                    if (!sysTable.NewRow("SYSSETTING", dicData, out exError))
                    {
                        ErrorHandle.ShowFrmErrorHandle("提示", "添加失败!");
                        return(false);
                    }
                }
                else
                {
                    if (!sysTable.UpdateRow("SYSSETTING", "SETTINGNAME='鹰眼图'", dicData, out exError))
                    {
                        ErrorHandle.ShowFrmErrorHandle("提示", "更新失败!");
                        return(false);
                    }
                }
                //提交事务
                if (pTransactions.InTransaction)
                {
                    pTransactions.CommitTransaction();
                }
                return(true);
            }
            catch (Exception ex)
            {
                //出错则放弃提交
                if (pTransactions.InTransaction)
                {
                    pTransactions.AbortTransaction();
                }
                ErrorHandle.ShowFrmErrorHandle("提示", "更新失败!");
                return(false);
            }
        }
        private void btnUpdata_Click(object sender, EventArgs e)
        {
            List <int> LstIndex = new List <int>();

            SysCommon.CProgress vProgress = new SysCommon.CProgress("进度条");
            vProgress.EnableCancel    = false;//设置进度条
            vProgress.ShowDescription = true;
            vProgress.FakeProgress    = true;
            vProgress.TopMost         = true;
            try
            {
                CheckerData();
                for (int i = 0; i < dataGrid.RowCount - 1; i++)
                {
                    if (dataGrid.Rows[i].Cells["CmnSelect"].Value.ToString() == true.ToString())
                    {
                        LstIndex.Add(i);
                    }
                }
                if (LstIndex.Count == 0)
                {
                    MessageBox.Show("请选择需要更新的数据!", "提示!");
                    return;
                }
                Exception   exError  = null;
                SysGisTable sysTable = new SysGisTable(m_Workspace);
                vProgress.MaxValue = LstIndex.Count;
                vProgress.ShowProgress();
                for (int j = 0; j < LstIndex.Count; j++)
                {
                    vProgress.ProgresssValue = j + 1;
                    string strSource                    = dataGrid.Rows[LstIndex[j]].Cells["CmnPath"].Value.ToString();
                    string strFeatureClassName          = dataGrid.Rows[LstIndex[j]].Cells["CmnFeatureClassName"].Value.ToString();
                    Dictionary <string, object> dicData = new Dictionary <string, object>();
                    ////判断上传的文件是否存在
                    if (System.IO.File.Exists(strSource))
                    {
                        //已存在更新
                        if (sysTable.ExistData("METADATA_LIB", "数据库名称='" + strFeatureClassName + "'"))
                        {
                            vProgress.SetProgress("正在更新数据:" + System.IO.Path.GetFileName(strSource));
                            dicData.Add("数据库名称", strFeatureClassName);
                            InitializeDic(strSource, ref dicData);
                            if (sysTable.UpdateRow("METADATA_LIB", null, dicData, out exError))
                            {
                                dataGrid.Rows[LstIndex[j]].Cells["CmnSelect"].Value = false;
                                dataGrid.Rows[LstIndex[j]].Cells["CmnState"].Value  = "数据更新完成";
                            }
                            else
                            {
                                dataGrid.Rows[LstIndex[j]].Cells["CmnState"].Value = "数据更新失败,请检查Excel文件格式是否正确";
                            }
                        }
                        else
                        {
                            dataGrid.Rows[LstIndex[j]].Cells["CmnState"].Value = "不存在该记录,请先上传该记录";
                        }
                    }
                    else
                    {
                        dataGrid.Rows[LstIndex[j]].Cells["CmnState"].Value = "数据库属性信息文件不存在";
                    }
                }
                vProgress.Close();
            }
            catch { vProgress.Close(); }
        }