/// <summary> /// 创建选择的数据 /// </summary> private void DeleteSelectedData(object state) { bool bIfSucc = false; string strErrMessag = "未知错误"; SetButtonEnabled(false); try { if (this._FormIfClose) { return; } Model.SelecedTreeNodeData objSelecedTreeNodeData = (Model.SelecedTreeNodeData)state; if (!(objSelecedTreeNodeData.SelectedDataList == null || objSelecedTreeNodeData.SelectedDataList.Count == 0)) { IDAL.IBuilding objDalBuilding = DALFactory.DALFactory.Building(); IDAL.ISys objDalSys = DALFactory.DALFactory.Sys(); foreach (Model.NodeData objData in objSelecedTreeNodeData.SelectedDataList) { if (objData.Flag.Equals(-1)) { //全部 bIfSucc = objDalSys.DeleteData(0); } else if (objData.Flag >= 0 && objData.Flag <= 3) { bool bSucc = objDalBuilding.Delete(objData.ID); if (bSucc) { bIfSucc = bSucc; } } } } if (bIfSucc) { InitTree(); } } catch (Exception err) { strErrMessag = err.Message; } if (bIfSucc) { RefreshTreeByThread(); } SetButtonEnabled(true); if (bIfSucc) { CMessageBox.ShowSucc("恭喜您,删除成功!", Config.DialogTitle); //当建筑信息删除时,通知其他已开启的树 Manager.GetInstance().BuildingDataChangeNotice(); } else { CMessageBox.ShowError(string.Format("对不起,删除失败,错误原因:\r\n{0}", strErrMessag), Config.DialogTitle); } }
/// <summary> /// 删除数据 /// </summary> /// <param name="selectedItems">当前选择的所有项</param> protected override void OnDelete(ListView.SelectedListViewItemCollection selectedItems) { if (MessageBox.Show(string.Format("删除{0}数据的同时会把下属的建筑数据以及卡片信息一起删除,请慎重选择,确定要删除当前选择的{1}数据吗?", this._DataTypeName, this._DataTypeName), Config.DialogTitle, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } int iSuccNum = 0; int iFaultNum = 0; foreach (ListViewItem selectedItem in selectedItems) { Building objModel = (Building)selectedItem.Tag; IDAL.IBuilding objDal = DALFactory.DALFactory.Building(); if (objDal.Delete(objModel.ID)) { iSuccNum++; } else { iFaultNum++; } } if (iSuccNum == 0) { CMessageBox.ShowError("对不起,删除失败!", Config.DialogTitle); } else if (iFaultNum == 0) { CMessageBox.ShowSucc("恭喜您,删除成功!", Config.DialogTitle); } else { CMessageBox.ShowSucc(string.Format("{0}个删除成功,{1}个删除失败", iSuccNum, iFaultNum), Config.DialogTitle); } if (iSuccNum > 0) { //重新刷新列表 BindLVData(0, this.CurrentSqlWhere); //当建筑信息删除时,通知其他已开启的树 Manager.GetInstance().BuildingDataChangeNotice(); } }