实例介绍
【实例简介】C#学生宿舍管理系统,得安装水晶报表 否则会报错
【实例截图】
【核心代码】
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using System.IO; using System.Drawing.Imaging; using System.Collections; namespace 学生宿舍管理系统 { public partial class frmMain : Form { public frmMain() { InitializeComponent(); this.skinEngine1.SkinFile = "MP10.ssk"; start = this.lstRepute.Location.X; y = this.Height - 40 - lstRepute.Height - 18; } public static int returnnum = 1;//定义一个切换角色的变量并给它赋一个具体值来调用主窗体的load事件中的调用登录窗体 int start=0, finish = 0;//定义变量设置显示来回移动的lstRepute的位置 int y=0; public static int stoptimermove = 1;//定义lstRepute的时间计时的启用 public void hideTimer()//定义一个方法来禁用时间计时和lstRepute { lstRepute.Visible = false; timerMove.Enabled = false; } public void showButton()//定义隐藏控件的方法来区分角色 { 违规管理ToolStripMenuItem.Visible = false; 用户管理ToolStripMenuItem1.Visible = false; 数据维护ToolStripMenuItem.Visible = false; toolBarButton3.Visible = false; } public void showSort(string userSort)//通过判断角色来显示对应的操作控件 { switch (userSort) { case "学生": 用户管理ToolStripMenuItem1.Visible = false; 数据维护ToolStripMenuItem.Visible = false; 管理员注册ToolStripMenuItem.Visible = false; break; case "管理员": break; case "教师": showButton(); break; } } private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) { this.Close(); } private void showRepute()//定义一个方法将卫生成绩填充到来回移动的lstRepute的表中 { try { connection.con.Open(); string num, score; int i = 0; string[] num1 = new string[] { "第一名", "第二名", "第三名", "第四名", "第五名" }; SqlCommand cmd = new SqlCommand("select top 5 宿舍编号,总分 from 卫生统计表 order by 总分 desc", connection.con); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { num = (string)dr[0]; score = (string)dr[1]; ListViewItem lst = new ListViewItem(num1[i]); lstRepute.Items.Add(lst); lst.SubItems.Add(num); i ; lst.SubItems.Add(score); } dr.Close(); connection.con.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void mainFrom_Load(object sender, EventArgs e) { if (returnnum == 1)//调用登录窗体 { timerMove.Enabled = false;//禁用计时器 LogIn login = new LogIn(); login.ShowDialog(); } if (stoptimermove == 2)//通过对stoptimermove变量的赋值启用计时器 { timerMove.Enabled = true; } tsslblUser.Text = "当前用户名:" LogIn.getUser "";//在状态栏或当前登录的角色以及当前时间和版本 tsslblWelcome.Text = " 欢迎来到学生宿舍管理系统"; tsslblType.Text = " 版本:" System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); showSort(LogIn.showsort);//通过对登录窗体的变量showsort的赋值调用判断角色的方法 showRepute();//调用显示lstRepute表的方法 } private void mainFrom_SizeChanged(object sender, EventArgs e) { y = this.Height = 45 - lstRepute.Height - 10;//通对变量y的显示在当前窗体的为的设置 } private void toolBar1_ButtonClick(object sender, ToolBarButtonClickEventArgs e) { if (e.Button.Text == "查房统计")//通过选择toolBar中的控件进行调用窗体 { hideTimer(); DormSelect s = new DormSelect(); s.MdiParent = this; s.Show(); print.changePath = 3;//对水晶报表中设置的变量changePath进行赋值改变打印路径 } if (e.Button.Text == "学分加减") { hideTimer(); scoreAdd s = new scoreAdd(); s.MdiParent = this; s.Show(); print.changePath = 1; } if (e.Button.Text == "纪律管理统计") { hideTimer(); DisciplineFrm f = new DisciplineFrm(); f.MdiParent = this; f.Show(); print.changePath = 4; } if (e.Button.Text == "卫生统计") { hideTimer(); frmLookafer fl = new frmLookafer(); fl.MdiParent = this; fl.Show(); print.changePath = 2; } if (e.Button.Text == "宿舍报修") { hideTimer(); dormRepair1 s = new dormRepair1(); s.MdiParent = this; s.Show(); } if (e.Button.Text == "退出系统") { Application.Exit(); } if (e.Button.Text == "切换角色") { hideTimer(); timerMove.Enabled = false; this.Visible = false; returnnum = 2;//通过改变returnnum的值,调用登录窗体,切换角色后,来限制主窗体的load事件中的调用登录窗体的代码 LogIn s = new LogIn(); s.ShowDialog(); this.Close(); } if (e.Button.Text == "管理") { hideTimer(); administer s = new administer(); s.MdiParent = this; s.Show(); } if (e.Button.Text == "打印")//可以对调用任意的窗体实现打印 { try { print s = new print(); s.ShowDialog(); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } private void 纪律管理统计录入ToolStripMenuItem_Click(object sender, EventArgs e) { this.timerMove.Enabled = false; } private void 宿舍报修录入ToolStripMenuItem_Click(object sender, EventArgs e) { this.timerMove.Enabled = false; } private void 宿舍楼录入ToolStripMenuItem1_Click(object sender, EventArgs e) { this.timerMove.Enabled = false; } private void 退出ToolStripMenuItem1_Click(object sender, EventArgs e) { this.timerMove.Enabled = false; this.Close(); } private void 返回ToolStripMenuItem1_Click(object sender, EventArgs e)//和ToolBar控件中的'打印'功能一致 { ActiveForm.Close(); returnnum = 2; LogIn s = new LogIn(); s.ShowDialog(); this.Close(); } private void timerMove_Tick(object sender, EventArgs e)//给lstRepute实现来回移动的功能 { try { if (start > 0) { start--; lstRepute.Location = new Point(start, y); } else { lstRepute.Location = new Point(finish, y); finish ; if (finish == frmMain.ActiveForm.Width - 178) { finish = 0; start = frmMain.ActiveForm.Width - 179; } } } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void lblMove_MouseClick(object sender, MouseEventArgs e) { timerMove.Enabled = true; } private void lblMove_MouseEnter_1(object sender, EventArgs e) { timerMove.Enabled = false; } private void 文件ToolStripMenuItem1_Click(object sender, EventArgs e) { lstRepute.Visible = false; } private void timer1_Tick(object sender, EventArgs e) { tsslblTime.Text = "当前时间:" DateTime.Now.ToLongDateString() DateTime.Now.ToLongTimeString(); } private void 学分加减录入ToolStripMenuItem_Click_1(object sender, EventArgs e) { hideTimer(); 学分加减录入 s = new 学分加减录入(); s.MdiParent = this; s.Show(); } private void 查房统计录入ToolStripMenuItem1_Click_1(object sender, EventArgs e) { hideTimer(); 查房统计录入 frm = new 查房统计录入(); frm.MdiParent = this; frm.Show(); } private void 纪律管理统计录入ToolStripMenuItem_Click_1(object sender, EventArgs e) { hideTimer(); frmRule1 d = new frmRule1(); d.MdiParent = this; d.Show(); } private void 主界面_FormClosing(object sender, FormClosingEventArgs e) { Application.Exit(); } private void 违规管理ToolStripMenuItem_Click(object sender, EventArgs e) { hideTimer(); } private void 用户管理ToolStripMenuItem1_Click(object sender, EventArgs e) { hideTimer(); } private void listView1_MouseEnter(object sender, EventArgs e) { timerMove.Enabled = false; } private void listView1_MouseLeave(object sender, EventArgs e) { timerMove.Enabled = true; } private void 宿舍录入ToolStripMenuItem_Click_1(object sender, EventArgs e) { hideTimer(); dromInformationAdd s = new dromInformationAdd(); s.MdiParent = this; s.Show(); } private void 宿舍报修录入ToolStripMenuItem_Click_1(object sender, EventArgs e) { hideTimer(); Repair s = new Repair(); s.MdiParent = this; s.Show(); } private void 数据维护ToolStripMenuItem_Click(object sender, EventArgs e) { hideTimer(); } private void toolStripMenuItem3_Click_1(object sender, EventArgs e) { hideTimer(); frmSanitation s = new frmSanitation(); s.MdiParent = this; s.Show(); } private void 管理员注册ToolStripMenuItem_Click(object sender, EventArgs e) { hideTimer(); administer s = new administer(); s.MdiParent = this; s.Show(); } private void tsmAbout_Click(object sender, EventArgs e)//调用关于 { hideTimer(); abount s = new abount(); s.MdiParent = this; s.Show(); } private void tsmHelp_Click(object sender, EventArgs e)//调用帮助主题 { try { System.Diagnostics.Process.Start("mailto:273230766"); } catch (Exception) { MessageBox.Show("本机没有正确安装邮件客户端!","提示"); } //hideTimer(); //Help.ShowHelp(this, @"StudentDorm.chm"); } private void 帮助ToolStripMenuItem_Click(object sender, EventArgs e) { hideTimer(); } private void frmMain_MaximumSizeChanged(object sender, EventArgs e) { hideTimer(); } private void changeFace(object sender, EventArgs e) { ToolStripMenuItem faceName = (ToolStripMenuItem)sender; switch (faceName.Text) { case "MP10": this.skinEngine1.SkinFile = "MP10.ssk"; break; case "MSN": this.skinEngine1.SkinFile = "MSN.ssk"; break; case "Vista2_color2": this.skinEngine1.SkinFile = "Vista2_color2.ssk"; break; case "XPBlue": this.skinEngine1.SkinFile = "XPBlue.ssk"; break; case "XPGreen": this.skinEngine1.SkinFile = "XPGreen.ssk"; break; } } private void 更多自定义皮肤ToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog dlg = new OpenFileDialog(); dlg.Title = "请选择皮肤文件,暂时只支持*.ssk皮肤"; dlg.CheckFileExists = true; dlg.Filter = "ssk文件|*.ssk|所有文件|*.*"; dlg.Multiselect = false; //string path_name = ""; if (dlg.ShowDialog() == DialogResult.OK) { //string faceName = dlg.FileName; this.skinEngine1.SkinFile = dlg.FileName; } } #region ////C# sql server数据库备份恢复原代码 ///// <summary> ///// 取得数据库服务器列表: ///// </summary> ///// <returns></returns> //public ArrayList getserverlist() //{ //ArrayList alservers = new ArrayList() ; //Sqldmo.application sqlapp = new Sqldmo.applicationclass() ; //try //{ //Sqldmo.namelist serverlist = sqlapp.listavailablesqlservers() ; //for(int i = 1;i<= serverlist.count;i ) //{ //alservers.add(serverlist.item(i)) ; //} //} //catch(Exception e) //{ //throw(new Exception("取数据库服务器列表出错:" e.Message)) ; //} //finally //{ //sqlapp.quit() ; //} //return alservers ; //} ///// <summary> ///// 取得指定数据库服务器的数据库列表 ///// </summary> ///// <param name="strservername"></param> ///// <param name="strusername"></param> ///// <param name="strpwd"></param> ///// <returns></returns> //public ArrayList getdblist(string strservername,string strusername,string strpwd) //{ //servername = strservername ; //username = strusername ; //password = strpwd ; //ArrayList aldbs = new ArrayList() ; //sqldmo.application sqlapp = new sqldmo.applicationclass() ; //sqldmo.sqlserver svr = new sqldmo.sqlserverclass() ; //try //{ //svr.connect(servername,username,password) ; //foreach(sqldmo.database db in svr.databases) //{ //if(db.name!=null) //aldbs.add(db.name) ; //} //} //catch(Exception e) //{ //throw(new Exception("连接数据库出错:" e.Message)) ; //} //finally //{ //svr.disconnect() ; //sqlapp.quit() ; //} //return aldbs ; //} ///// <summary> ///// 数据库的备份和实时进度显示代码: ///// </summary> ///// <param name="strdbname"></param> ///// <param name="strfilename"></param> ///// <param name="pgbmain"></param> ///// <returns></returns> //public bool backupdb(string strdbname,string strfilename, progressbar pgbmain) //{ //pbar = pgbmain ; //sqldmo.sqlserver svr = new sqldmo.sqlserverclass() ; //try //{ //svr.connect(servername,username,password) ; //sqldmo.backup bak = new sqldmo.backupclass(); //bak.action = 0 ; //bak.initialize = true ; //sqldmo.backupsink_percentcompleteeventhandler pceh = new sqldmo.backupsink_percentcompleteeventhandler(step); //bak.percentcomplete = pceh; //bak.files = strfilename; //bak.database = strdbname; //bak.sqlbackup(svr); //return true ; //} //catch(Exception err) //{ //throw(new Exception("备份数据库失败" err.Message)) ; //} //finally //{ //svr.disconnect() ; //} //} //private void step(string message,int percent) //{ //pbar.value = percent ; //} ////其中,这两个语句实现了进度的实时显示: //sqldmo.backupsink_percentcompleteeventhandler pceh = new sqldmo.backupsink_percentcompleteeventhandler(step); //bak.percentcomplete = pceh; ////step就是上面private void step(string message,int percent) 的方法名称,它用来显示进度条的当前进度。 ///// <summary> ///// 数据库的恢复和杀死进程的代码: ///// </summary> ///// <param name="strdbname"></param> ///// <param name="strfilename"></param> ///// <param name="pgbmain"></param> ///// <returns></returns> //public bool restoredb(string strdbname,string strfilename, progressbar pgbmain) //{ //pbar = pgbmain ; //sqldmo.sqlserver svr = new sqldmo.sqlserverclass() ; //try //{ //svr.connect(servername,username,password) ; //sqldmo.queryresults qr = svr.enumprocesses(-1) ; //int icolpidnum = -1 ; //int icoldbname = -1 ; //for(int i=1;i<=qr.columns;i ) //{ //string strname = qr.get_columnname(i) ; //if (strname.toupper().trim() == "spid") //{ //icolpidnum = i ; //} //else if (strname.toupper().trim() == "dbname") //{ //icoldbname = i ; //} //if (icolpidnum != -1 && icoldbname != -1) //break ; //} //for(int i=1;i<=qr.rows;i ) //{ //int lpid = qr.getcolumnlong(i,icolpidnum) ; //string strdbname = qr.getcolumnstring(i,icoldbname) ; //if (strdbname.toupper() == strdbname.toupper()) //svr.killprocess(lpid) ; //} //sqldmo.restore res = new sqldmo.restoreclass() ; //res.action = 0 ; //sqldmo.restoresink_percentcompleteeventhandler pceh = new sqldmo.restoresink_percentcompleteeventhandler(step); //res.percentcomplete = pceh; //res.files = strfilename ; //res.database = strdbname ; //res.replacedatabase = true ; //res.sqlrestore(svr) ; //return true ; //} //catch(exception err) //{ //throw(new exception("恢复数据库失败,请关闭所有和该数据库连接的程序!" err.message)) ; //} //finally //{ //svr.disconnect() ; //} //} ////其中这个语句取得了所有的进程列表: //sqldmo.queryresults qr = svr.enumprocesses(-1) ; ////下面的语句找到和要恢复数据库相关的进程并杀死: //int icolpidnum = -1 ; //int icoldbname = -1 ; //for(int i=1;i<=qr.columns;i ) //{ //string strname = qr.get_columnname(i) ; //if (strname.toupper().trim() == "spid") //{ //icolpidnum = i ; //} //else if (strname.toupper().trim() == "dbname") //{ //icoldbname = i ; //} //if (icolpidnum != -1 && icoldbname != -1) //break ; //} //for(int i=1;i<=qr.rows;i ) //{ //int lpid = qr.getcolumnlong(i,icolpidnum) ; //string strdbname = qr.getcolumnstring(i,icoldbname) ; //if (strdbname.toupper() == strdbname.toupper()) //svr.killprocess(lpid) ; //} #endregion #region // public static void DbBackup() // { // SQLDMO.Backup oBackup = new SQLDMO.BackupClass(); // SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass //(); // try // { // oSQLServer.LoginSecure = false; // oSQLServer.Connect("localhost", "sa", "1234"); // oBackup.Action = //SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database; // oBackup.Database = "Northwind"; // oBackup.Files = @"d:\Northwind.bak"; // oBackup.BackupSetName = "Northwind"; // oBackup.BackupSetDescription = "数据库备份"; // oBackup.Initialize = true; // oBackup.SQLBackup(oSQLServer); // } // catch // { // throw; // } // finally // { // oSQLServer.DisConnect(); // } // } // /// <summary> // /// 数据库恢复 // /// </summary> // public static void DbRestore() // { // SQLDMO.Restore oRestore = new SQLDMO.RestoreClass(); // SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass //(); // try // { // oSQLServer.LoginSecure = false; // oSQLServer.Connect("localhost", "sa", "1234"); // oRestore.Action = //SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database; // oRestore.Database = "Northwind"; // oRestore.Files = @"d:\Northwind.bak"; // oRestore.FileNumber = 1; // oRestore.ReplaceDatabase = true; // oRestore.SQLRestore(oSQLServer); // } // catch // { // throw; // } // finally // { // oSQLServer.DisConnect(); // } // } // } #endregion } }
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论