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

📄 frmplatfmajor.cs

📁 本书主要介绍了从基础开始建立Portal的快速应用开发过程(RAD)的方法。通过本书你可以了解到关于Oracle 9iAS Portal产品的主要特性、入口的开发和组织、网络开发和管理、实际的关系型数
💻 CS
📖 第 1 页 / 共 2 页
字号:
		 * 最后修改时间:04-08-12   by cellz
		 * ************************************************************************************************************/
		private void Majorview()
		{
			//窗体初始化设置
			//toolbar初始化设置
			tbrButtonAdd.Enabled = true;
			//			tbrButtonSave.Enabled = false;
			//			tbrButtonEdit.Enabled = false;
			tbrButtonDel.Enabled = true;

 
			
			//数据库查询操作,listview中按照名称顺序显示记录
			System.Data.OracleClient.OracleConnection myConn = Connection.DBConnection;
			if (myConn == null)
			{
				return;	
			}
			
			//专业信息的查询语句
			/*
			string mySql = "SELECT A.MAJORID 标识,A.MAJORNAME 专业名称,C.DEPTNAME 所属院系名称,TO_CHAR(A.FROMDATE,'yyyymmdd') 起始时间,TO_CHAR(A.TODATE,'yyyymmdd') 终止时间,A.MAJORDESC 专业描述 "
				+"FROM PLATF_MAJOR_INFO A,PlatF_R_DEPT_MAJOR B,PLATF_DEPT_INFO C "
				+"WHERE B.MAJORID = A.MAJORID AND B.DEPTID=C.DEPTID ORDER BY C.DEPTNAME,A.MAJORNAME";
			*/
			string mySql = "SELECT A.MAJORID 标识,A.MAJORNAME 专业名称,C.DEPTNAME 所属院系名称,A.MAJORDESC 专业描述 "
				+"FROM charge_MAJOR_INFO A,charge_DEPT_INFO C "
				+"WHERE A.DEPTID=C.DEPTID ORDER BY C.DEPTNAME,A.MAJORNAME";
			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初始化设置
			lvMajor.Clear();
			//			lvMajor.View=View.Details;  //列标细节显示
			//			lvMajor.GridLines=true;   //网格显示
			lvMajor.FullRowSelect =true;  //整行选择
			//			lvMajor.CheckBoxes =true;     //复选框
			//          lvMajor.MultiSelect = false;  //不允许多选
			lvMajor.HideSelection = false; //当listview没有焦点时,选定项是否仍然突出显示
			//listview与数据库绑定
			BindingsListView(lvDataReader,lvMajor);
			
			//listview显示后列宽度等的一些细节调整
			lvMajor.Columns[0].Width =200;
			lvMajor.Columns[1].Width =200;

			
			this.lvMajor.ListViewItemSorter = new SortBySubItem(1);
			lvMajor.Sort();
			
			

		}


		

	
	

	
		/***************************************************************************************************************
		 * 功能:当对listview中某行双击时,通过此方法弹出新窗体显示该行信息
		 * 
		 * 输入参数:1、sender
		 *           2、e
		 * 输出参数:无
		 * 
		 * 最后修改时间:04-08-12   by cellz
		 * ************************************************************************************************************/
		private void lvMajor_DoubleClick(object sender, System.EventArgs e)
		{
			/*
			// 双击时如果选中了某条记录,则
			if (lvMajor.SelectedItems.Count >0)
			{
				//在Tag中保存了该条记录的ID,通过selectedTag.temp_id可调用此ID
				//lvTagTemp selectedTag = (lvTagTemp)lvMajor.SelectedItems[0].Tag ;				
				//CfrmPlatFMajorInfo  frmPlatFMajorInfo = new CfrmPlatFMajorInfo(selectedTag.temp_id,Convert.ToString(lvMajor.SelectedIndices.IndexOf(0)));
				
				//实例化新窗体,并将listview作为第一参数传递给新窗体,第二参数设为0表示新窗体显示不是新增操作,为1表示是新增操作
				CfrmPlatFMajorInfo  frmPlatFMajorInfo = new CfrmPlatFMajorInfo(lvMajor,0); 
				try
				{
					frmPlatFMajorInfo.ShowDialog();
				
				}
				catch
				{
					ErrorCode E = new ErrorCode();
					E.ShowMessage(ErrorCode.E_603_FormOpenError_Code); //窗体打开错误
					return;
				}

			}
			*/
		}


		/***************************************************************************************************************
		 * 功能:当对toolbar单击时的处理操作,有新增、浏览、删除、查询、退出按钮
		 * 
		 * 输入参数:1、sender
		 *           2、e
		 * 输出参数:无
		 * 
		 * 最后修改时间:04-08-12   by cellz
		 * ************************************************************************************************************/
		private void tbrMajor_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
		{
			switch(tbrMajor.Buttons.IndexOf(e.Button))
			{
				
					//新增操作
				case 1: 
					//实例化新窗体用于信息的详细显示,并将listview作为第一参数传递给新窗体,第二参数设为0表示新窗体显示不是新增操作,为1表示是新增操作
					CfrmPlatFMajorInfo  frmPlatFMajorInfo = new CfrmPlatFMajorInfo(lvMajor,1);
					try
					{
						frmPlatFMajorInfo.ShowDialog();
				
					}
					catch
					{
						ErrorCode E = new ErrorCode();
						E.ShowMessage(8);//窗体打开错误
						return;
					}
					break;


					//删除操作
				case 2:
					string tp_MajorID;  //由所有要删除记录的ID组成的字符串
					//实例化结构lvTagTemp,用来取得listviewitem的tag属性中保存的Majorid
					lvTagTemp selectedTag = new lvTagTemp();  
					if (lvMajor.SelectedItems.Count > 0 )
					{
						DialogResult result;
						result = MessageBox.Show(this,"确定要删除所有已选记录吗?","提示",MessageBoxButtons.OKCancel, MessageBoxIcon.Warning,MessageBoxDefaultButton.Button2 );
						if (result == DialogResult.OK)
						{  
							//tp_MajorID中保存所有选定记录的id,例:三条记录的id为1,12,21,tp_MajorID="(1,12,21)"
							tp_MajorID = "(";
							for (int i =0 ;i< lvMajor.SelectedItems.Count-1;i++)
							{
								selectedTag = (lvTagTemp)lvMajor.SelectedItems[i].Tag ;
								tp_MajorID = tp_MajorID + selectedTag.temp_id + ",";
							}
							//添加最后一个ID
							selectedTag = (lvTagTemp)lvMajor.SelectedItems[lvMajor.SelectedItems.Count-1].Tag ;
							tp_MajorID = tp_MajorID + selectedTag.temp_id + ")";
																	
							//添加存储过程输入参数
							OracleParameter[] inParam = {new OracleParameter()};
		
							inParam[0].ParameterName = "p_MajorID";
							inParam[0].OracleType = OracleType.VarChar;
							inParam[0].Value = tp_MajorID;
			
		
	   
							//添加存储过程输出参数
							OracleParameter[] outParam = {new OracleParameter()};
							outParam[0].ParameterName = "p_Result";
							outParam[0].OracleType = OracleType.Int32;
							outParam[0].Direction = ParameterDirection.Output;

							//删除存储过程的调用
							GlobleHelper.ExecStoredProc("SP_charge_DELMAJOR", inParam, ref outParam);
							//MessageBox.Show(Convert.ToString(outParam[0].Value));    //显示存储过程返回码
							if (Convert.ToInt32(outParam[0].Value) == 0)
							{
										

								for (int i =0 ;i< lvMajor.SelectedItems.Count;)
								{
									try
									{
										lvMajor.Items.RemoveAt(lvMajor.SelectedIndices[0]);
									}
									catch(Exception)
									{}
								}
								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 lvMajor_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
		{
			//			if (lvMajor.Sorting == SortOrder.Ascending)
			//			{
			//				lvMajor.Sorting = SortOrder.Descending;
			//			}
			//			else
			//			{
			//				lvMajor.Sorting = SortOrder.Ascending;
			//			}
			   
			this.lvMajor.ListViewItemSorter = new SortBySubItem(e.Column);         
			lvMajor.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 + -