public override void OnClick() { SysCommon.Error.frmInformation eerorFrm = new SysCommon.Error.frmInformation("是", "否", "删除产品将删除产品下的所有数据文件,确定吗?"); eerorFrm.Owner = (m_Hook as Plugin.Application.IAppFormRef).MainForm; if (eerorFrm.ShowDialog() != System.Windows.Forms.DialogResult.OK) { return; } //执行删除产品操作 Exception ex = null; ModDBOperator.DelProduct(m_Hook.ProjectTree.SelectedNode, out ex); if (null != ex) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("错误提示!", ex.Message); return; } else { m_Hook.ProjectTree.SelectedNode.Remove(); m_Hook.DataInfoGrid.DataSource = null; } }
/// <summary> /// 删除一个工程 /// </summary> /// <returns></returns> public bool DeleteProject(DevComponents.AdvTree.Node ProjectNode, string ConStr, long Projiectid , out string err) { Exception ex = null; err = ""; if (string.IsNullOrEmpty(this._ProName)) { err = "没有指定项目名称!"; return(false); } if (string.IsNullOrEmpty(ConStr)) { err = "没有指定元信息库连接信息!"; return(false); } int value = 0; FrmProcessBar DelBar = new FrmProcessBar(10); DelBar.Show(); DelBar.SetFrmProcessBarText("正在连接元信息库"); Application.DoEvents(); SysCommon.DataBase.SysTable pSysDB = new SysCommon.DataBase.SysTable(); //属性库连接类 pSysDB.SetDbConnection(ConStr, SysCommon.enumDBConType.ORACLE, SysCommon.enumDBType.ORACLE, out ex); if (ex != null) { err = "元信息库连接失败!连接地址为:" + ConStr; pSysDB.CloseDbConnection(); DelBar.Dispose(); DelBar.Close(); return(false); } long ProjectID = Projiectid; #region 除项目的所有产品 string Sql = "SELECT ID,产品名称,存储位置 FROM ProductMDTable WHERE 项目ID=" + ProjectID; DataTable GetTable = pSysDB.GetSQLTable(Sql, out ex); if (null != ex) { err = "获取项目的产品信息失败!"; pSysDB.CloseDbConnection(); DelBar.Dispose(); DelBar.Close(); return(false); } if (null != GetTable) { for (int i = 0; i < GetTable.Rows.Count; i++) { long ProducetId = -1; string ProductName = string.Empty; string ProductPath = string.Empty; ProducetId = long.Parse(GetTable.Rows[i][0].ToString()); ProductName = GetTable.Rows[i][1].ToString().Trim(); ProductPath = GetTable.Rows[i][2].ToString().Trim(); DelBar.SetFrmProcessBarValue(value); DelBar.SetFrmProcessBarText(" 正在删除产品:" + ProductName); value += 1; if (value == 10) { value = 0; } Application.DoEvents(); DevComponents.AdvTree.Node ProductNode = ModDBOperator.GetTreeNode(ProjectNode, ProductPath, ProductName, EnumTreeNodeType.PRODUCT.ToString(), ProducetId, out ex); if (null != ex) { err = "获取项目的产品:‘" + ProductName + "’树节点失败!"; pSysDB.CloseDbConnection(); DelBar.Dispose(); DelBar.Close(); return(false); } if (null != ProductNode) { if (!ModDBOperator.DelProduct(ProductNode, out ex)) { err = "删除项目的产品:‘" + ProductName + "’失败!"; pSysDB.CloseDbConnection(); DelBar.Dispose(); DelBar.Close(); return(false); } } } } #endregion #region 除项目的文件夹 DelBar.SetFrmProcessBarText("正在删除工程项目目录"); Application.DoEvents(); if (!ModDBOperator.DelDirtory(this._ftpIP, this._ftpUSER, this._ftpPassWord, this._ProName, out ex)) { err = "工程项目项目目录删除失败!"; pSysDB.CloseDbConnection(); DelBar.Dispose(); DelBar.Close(); return(false); } #endregion DelBar.Dispose(); DelBar.Close(); pSysDB.CloseDbConnection(); return(true); }