📄 frmplatfmajor.cs
字号:
* 最后修改时间: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 + -