实例介绍
【实例简介】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小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论