基本信息
源码名称:C#学生宿舍管理系统(含数据库文件)
源码大小:8.99M
文件格式:.rar
开发语言:C#
更新时间:2018-10-08
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 2 元×
微信扫码支付:2 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
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
}
}