⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmplatfdept.cs

📁 本书主要介绍了从基础开始建立Portal的快速应用开发过程(RAD)的方法。通过本书你可以了解到关于Oracle 9iAS Portal产品的主要特性、入口的开发和组织、网络开发和管理、实际的关系型数
💻 CS
📖 第 1 页 / 共 2 页
字号:
					for(int j=2;j<cmicDt.Columns.Count;j++)
					{
						cmicItem.SubItems.Add(cmicDt.Rows[i][j].ToString().Trim());   
					}
					sLV.Items.Add(cmicItem); 
				}
			}
			else
			{
				return;
			}
		}

		/***************************************************************************************************************
		 * 功能:初始化学校部门维护界面,在listview中显示全部记录
		 * 
		 * 输入参数:无
		 * 输出参数:无 
		 * ************************************************************************************************************/
		//功能:初始化学校部门维护界面,在listview中显示全部记录
		private void Deptview()
		{
			//窗体初始化设置
			//toolbar初始化设置
			tbrButtonAdd.Enabled = true;
			tbrButtonDel.Enabled = true;
            //数据库查询操作,listview中按照名称顺序显示记录
			System.Data.OracleClient.OracleConnection myConn = Connection.DBConnection;
			if (myConn == null)
			{
				return;	
			}
			string mySql = "SELECT OrgName FROM Charge_School_Info";
			string orgname = "(无)";
			OracleCommand orgCommand = new OracleCommand(mySql,myConn);
			OracleDataReader orgDataReader = null;
			try
			{
				orgDataReader = orgCommand.ExecuteReader();
			}
			catch(Exception ee)
			{
				MessageBox.Show("数据库查询出错,消息如下:\r\n"+ee.Message,"消息:",MessageBoxButtons.OK,MessageBoxIcon.Warning);
				return;
			}
			while (orgDataReader.Read ())
			{
				orgname = orgDataReader.GetValue(0).ToString().Trim();
			}
	       
			mySql = "SELECT A.DEPTID 标识,A.DEPTNAME 部门名称,NVL(C.DEPTNAME,'" + orgname + "') 上级部门名称,A.DEPTNUMBER 部门人数,A.DEPTDESC 部门描述 "
				+"FROM charge_dept_info A,charge_R_Dept B,charge_dept_info C "
				+"WHERE B.TODEPTID = A.DEPTID AND B.FROMDEPTID=C.DEPTID(+)  ORDER BY DECODE(NVL(C.DEPTNAME,'" + orgname + "'),'" + orgname + "',1,2),A.DEPTNAME";
			OracleCommand selCommand = new OracleCommand(mySql,myConn);
			
			OracleDataReader lvDataReader = null;
			try
			{
				lvDataReader = selCommand.ExecuteReader();
			}
			catch(Exception ee)
			{
				MessageBox.Show("数据库查询出错,消息如下:\r\n"+ee.Message,"消息:",MessageBoxButtons.OK,MessageBoxIcon.Warning);
				return;
			}
			//listview初始化设置
			lvDept.Clear();
			lvDept.FullRowSelect =true;  //整行选择
			lvDept.HideSelection = false; //当listview没有焦点时,选定项是否仍然突出显示
			//listview与数据库绑定
			BindingsListView(lvDataReader,lvDept);
			myConn.Close();
			//listview显示后列宽度等的一些细节调整
			lvDept.Columns[0].Width =200;
			lvDept.Columns[1].Width =200;
            this.lvDept.ListViewItemSorter = new SortBySubItem(1);
		    lvDept.Sort();
			}


		

	
	

	
		/***************************************************************************************************************
		 * 功能:当对listview中某行双击时,通过此方法弹出新窗体显示该行信息
		 * 
		 * 输入参数:1、sender
		 *           2、e
		 * 输出参数:无
		 * 
		 * 最后修改时间:04-08-12   by cellz
		 * ************************************************************************************************************/

		private void lvDept_DoubleClick(object sender, System.EventArgs e)
		{
			
		}


		//功能:当对toolbar单击时的处理操作,有新增、浏览、删除、查询、退出按钮
		private void tbrDept_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
		{
			switch(tbrDept.Buttons.IndexOf(e.Button))
			{
				
					//新增操作
				case 1: 
					//实例化新窗体用于信息的详细显示,并将listview作为第一参数传递给新窗体,为1表示是新增操作
					CfrmPlatFDeptInfo  frmPlatFDeptInfo = new CfrmPlatFDeptInfo(lvDept,1);
					try
					{
						frmPlatFDeptInfo.ShowDialog();
				    }
					catch
					{
						ErrorCode E = new ErrorCode();
						E.ShowMessage(8);//窗体打开错误
						return;
					}
					break;
                    //删除操作
				case 2:
					string tp_DeptID;  //由所有要删除记录的ID组成的字符串
					//实例化结构lvTagTemp,用来取得listviewitem的tag属性中保存的Deptid
					lvTagTemp selectedTag = new lvTagTemp();  
					if (lvDept.SelectedItems.Count > 0 )
					{
						DialogResult result;
						result = MessageBox.Show(this,"确定要删除所有已选记录吗?","提示",MessageBoxButtons.OKCancel, MessageBoxIcon.Warning,MessageBoxDefaultButton.Button2 );
						if (result == DialogResult.OK)
						{  
							//tp_DeptID中保存所有选定记录的id,例:三条记录的id为1,12,21,tp_DeptID="(1,12,21)"
							tp_DeptID = "(";
							for (int i =0 ;i< lvDept.SelectedItems.Count-1;i++)
							{
								selectedTag = (lvTagTemp)lvDept.SelectedItems[i].Tag ;
								tp_DeptID = tp_DeptID + selectedTag.temp_id + ",";
							}
							//添加最后一个ID
							selectedTag = (lvTagTemp)lvDept.SelectedItems[lvDept.SelectedItems.Count-1].Tag ;
							tp_DeptID = tp_DeptID + selectedTag.temp_id + ")";
																	
							//添加存储过程输入参数
							OracleParameter[] inParam = {new OracleParameter()};
		
							inParam[0].ParameterName = "p_DeptID";
							inParam[0].OracleType = OracleType.VarChar;
							inParam[0].Value = tp_DeptID;
			                //添加存储过程输出参数
							OracleParameter[] outParam = {new OracleParameter()};
							outParam[0].ParameterName = "p_Result";
							outParam[0].OracleType = OracleType.Int32;
							outParam[0].Direction = ParameterDirection.Output;

							int iRetVal = 0;
							//删除存储过程的调用
							iRetVal = GlobleHelper.ExecStoredProc("SP_charge_DELDEPT", inParam, ref outParam);
							if(iRetVal == 7)
							{
								MessageBox.Show("违反外键约束,该部门被其他表引用!","消息",MessageBoxButtons.OK,MessageBoxIcon.Warning);
								return;
							}
							if (Convert.ToInt32(outParam[0].Value) == 0)
							{
										

								for (int i =0 ;i< lvDept.SelectedItems.Count;)
								{
									try
									{
										lvDept.Items.RemoveAt(lvDept.SelectedIndices[0]);
									}
									catch(Exception)
									{}
								}
								MessageBox.Show("删除成功!");
							}
							else
							{
								if (Convert.ToInt32(outParam[0].Value) == 7) 
								{
									MessageBox.Show("要删除的部门有下级部门,请先删除下级部门!");
								}
								else
								{
									if (Convert.ToInt32(outParam[0].Value) == -2292) //-2292是oracle错误码,表示删除违反外键约束
									{
										MessageBox.Show("要删除的部门信息被别的表引用,请先删除相关信息!");
									}
									else
									{
										MessageBox.Show("未知数据库操作错误,请重新打开窗体!");
									}
								}
							}
						}
					}
					else
					{
						MessageBox.Show("请选择需要删除的记录!");
						return;
					}
					break;	
			        case 3:
					this.Close();
					break;
			}
		}

		private void lvDept_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
		{

			   
			this.lvDept.ListViewItemSorter = new SortBySubItem(e.Column);         
		    lvDept.Sort();
		}

		
	


		public class SortBySubItem : System.Collections.IComparer
		{
			private int m_Column = 0;
			public SortBySubItem(int Column)
			{
				m_Column = Column;
				
			}
			int IComparer.Compare(object x, object y)
			{
				ListViewItem item1 = (ListViewItem)x;
				ListViewItem item2 = (ListViewItem)y;
				
				int aa= String.Compare(item1.SubItems[m_Column].Text,
					item2.SubItems[m_Column].Text);
				return aa;
			}
		}


	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -