c#实现学生考勤系统(附源码和报告)

课设功能描述

该学生考勤系统包含了登录、注册、学生端的请假功能,教师端对学生信息的增删改查和批假功能。

一、数据库操作类

该类主要用于后面一些功能需要对数据库操作,即需要对数据库操作的话,直接调用该类即可。

using System;
using System.Collections.Generic;
using System.Text;
using MySql.Data.MySqlClient;
namespace 学生考勤系统的设计
{
    // 访问数据库的类
    class MySqlAccess
    {
        //定义mysql连接字符串
        private static string constring = "data source = localhost; database = student_attendance_system; user id = root; password = 0915; pooling = true; charset = utf8; port=3306;";
        //连接mysql
        private static MySqlConnection msc = new MySqlConnection(constring);

        // 返回用于实现mysql命令的对象
        public static MySqlCommand GetMySqlCommand(string sql)
        {
            //打开数据库连接
            if (msc.State == System.Data.ConnectionState.Closed)
                msc.Open();
            return new MySqlCommand(sql, msc);
        }

        public static MySqlDataAdapter GetMySqlDataAdapter(string sql)
        {
            //打开数据库连接
            if (msc.State == System.Data.ConnectionState.Closed)
                msc.Open();
            return new MySqlDataAdapter(sql, msc);
        }
    }
}

二、登录、注册功能

该功能实现起来其实也也并不是很难,登录的话,只要读取数据库的用户表,然后和输入的用户名和密码进行匹配即可,在根据该用户表的身身份字段,进入不同的客户端。
注册的话,如果操作正确,只需对数据库的用户表增加操作就行了。

1. 登录代码及截图

c#实现学生考勤系统(附源码和报告)_第1张图片

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace 学生考勤系统的设计
{
    public partial class Login_Form : Form
    {
        //static public Login_Form login = new Login_Form(); //静态化主窗口
        public static string userName;
        public static string userIdentity;
        public Login_Form()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //定义sql语句
            string sql = "select * from subscribers";
            //调用MySqlAccess类获得实现mysql语句对象
            MySqlCommand cmd = MySqlAccess.GetMySqlCommand(sql);
            //执行命令
            MySqlDataReader reader = cmd.ExecuteReader();

            //读取数据
            bool flag1 = false, flag2 = false;
            while (reader.Read())
            {
                if (reader.GetString("id").Equals(User_Name.Text))
                {
                    flag1 = true;
                    if (reader.GetString("user_password").Equals(User_Password.Text))
                    {
                        flag2 = true;
                        userName = reader.GetString(0);
                        userIdentity = reader.GetString(2);
                    }
                }
                if (flag1 && flag2)
                    break;
            }
            reader.Close();

            if (flag1 && flag2)
            {
                if(userIdentity == "学生")
                {
                    Student_Form student_Form = new Student_Form();
                    this.Hide();
                    student_Form.ShowDialog();
                    this.Close();
                }
                else if(userIdentity == "管理员")
                {
                    Admin_Form admin_Form = new Admin_Form();
                    this.Hide();
                    admin_Form.ShowDialog();
                    this.Close();
                }
                else
                {
                    Teacher_Form teacher_Form = new Teacher_Form();
                    this.Hide();
                    teacher_Form.ShowDialog();
                    this.Close();
                }
            }
            else
            {
                if (!flag1)
                    MessageBox.Show("用户名错误");
                else
                    MessageBox.Show("密码错误");
            }

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            Register_Form register_Form = new Register_Form();
            register_Form.ShowDialog();
        }
    }
}

2. 注册代码及截图

c#实现学生考勤系统(附源码和报告)_第2张图片
注册主要用于教师、辅导员、领导、院长注册,学生有教师端添加,并且点击注册时也会弹出邀请码框,邀请码由管理员生成。
c#实现学生考勤系统(附源码和报告)_第3张图片

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace 学生考勤系统的设计
{
    public partial class Register_Form : Form
    {
        public Register_Form()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Clear();
            textBox2.Clear();
            textBox3.Clear();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if(comboBox1.Text .Equals(string.Empty))
            {
                MessageBox.Show("请选择身份!");
                return;
            }

            if(textBox1.Text.Equals(string.Empty))
            {
                MessageBox.Show("用户名不能为空");
                return;
            }

            if (textBox2.Text.Equals(string.Empty))
            {
                MessageBox.Show("密码不能为空");
                return;
            }

            if (textBox2.Text != textBox3.Text)
            {
                MessageBox.Show("密码不一致!");
                return;
            }

            Captcha_Form captcha_Form = new Captcha_Form();
            DialogResult dialogResult = captcha_Form.ShowDialog();
            if (dialogResult != DialogResult.OK)
            {
                MessageBox.Show("注册失败!");
                return;
            }

            try { 
            
                string sql = "insert into subscribers values('{0}', '{1}', '{2}')";
                sql = string.Format(sql, textBox1.Text, textBox2.Text, comboBox1.Text);
                //MessageBox.Show(sql);
                MySqlAccess.GetMySqlCommand(sql).ExecuteNonQuery();
                MessageBox.Show("注册成功!");
            }
            catch(Exception ex)
            {
                MessageBox.Show("用户已存在!");
            }
        }
    }
}

三、学生端

学生端的主页面会显示该学生的基本信息,并且有一个请假功能
c#实现学生考勤系统(附源码和报告)_第4张图片

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace 学生考勤系统的设计
{
    public partial class Student_Form : Form
    {
        public Student_Form()
        {
            InitializeComponent();
        }

        private void Student_From_Load(object sender, EventArgs e)
        {
            TableShow();
        }

        private void TableShow()
        {
            string userName = Login_Form.userName;
            string sql = "select student_id,student_name,class,specialty,phone_number,absence_count,late_count,early_count from student_infomation where student_id = '" + userName + "'";
            //MySqlCommand cmd = MySqlAccess.GetMySqlCommand(sql);
            //MySqlDataReader reader = cmd.ExecuteReader();

            //创建MySqlDataAdapter对象
            MySqlDataAdapter mySqlData = MySqlAccess.GetMySqlDataAdapter(sql);
            //创建DataSet对象
            DataSet ds = new DataSet();
            //使用MySqlDataAdapter对象mySqlData将查到的结果填充到DataSet对象中
            mySqlData.Fill(ds);
            //设置表格控件DataSource的属性
            dataGridView1.DataSource = ds.Tables[0];

            //设置列标题
            dataGridView1.Columns[0].HeaderText = "学号";
            dataGridView1.Columns[1].HeaderText = "姓名";
            dataGridView1.Columns[2].HeaderText = "班级";
            dataGridView1.Columns[3].HeaderText = "专业";
            dataGridView1.Columns[4].HeaderText = "电话";
            dataGridView1.Columns[5].HeaderText = "旷课次数";
            dataGridView1.Columns[6].HeaderText = "迟到次数";
            dataGridView1.Columns[7].HeaderText = "早退次数";


            //设置数据表格为只读
            dataGridView1.ReadOnly = true;
            //不允许添加行
            dataGridView1.AllowUserToAddRows = false;
            //背景为白色
            dataGridView1.BackgroundColor = Color.White;
            //只允许选中单行
            dataGridView1.MultiSelect = false;
            //整行选中
            dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Leave leave = new Leave();
            leave.ShowDialog();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Login_Form lf = new Login_Form();
            this.Hide();
            lf.ShowDialog();
            this.Close();
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
}

请假功能

c#实现学生考勤系统(附源码和报告)_第5张图片

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace 学生考勤系统的设计
{
    public partial class Leave : Form
    {
        public Leave()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            bool tut_leave = false, ter_leave = false, lea_leave = false, dean_leave = false;
            string leaveTime;
            string leaveReason;
            //判断是否被选中
            if (radioButton1.Checked)
            {
                leaveTime = radioButton1.Text;
                ter_leave = true;
            }
            else if (radioButton2.Checked)
            {
                leaveTime = radioButton2.Text;
                tut_leave = true;
            }
            else if (radioButton3.Checked)
            {
                leaveTime = radioButton3.Text; ;
                tut_leave = true;
                lea_leave = true;
            }
            else
            {
                leaveTime = radioButton4.Text;
                tut_leave = true;
                lea_leave = true;
                dean_leave = true;
            }

            leaveReason = textBox1.Text;

            try
            {
                //获取当前用户名
                string userName = Login_Form.userName;
                //定义sql语句,修改请假状态
                string sql1, sql2, sql3;
                // 更新请假状态表
                sql2 = "insert into leave_state values({0}, {1}, {2}, {3}, {4})";
                sql2 = string.Format(sql2, userName, tut_leave, ter_leave, lea_leave, dean_leave);
                //MessageBox.Show(sql2);
                MySqlAccess.GetMySqlCommand(sql2).ExecuteNonQuery(); // 获取并执行

                // 更新学生表里的请假时长
                sql1 = "update student_infomation set leave_state = '" + leaveTime + "' where student_id = '" + userName + "'";
                 //获取实现sql命令的对象
                MySqlCommand cmd = MySqlAccess.GetMySqlCommand(sql1);
                //执行命令
                cmd.ExecuteNonQuery();

                sql3 = "update student_infomation set leave_reason = '" + leaveReason + "' where student_id = '" + userName + "'";
                MySqlAccess.GetMySqlCommand(sql3).ExecuteNonQuery();

                MessageBox.Show("提交成功");
                this.Close();
            }
            catch(Exception ex)
            {
                MessageBox.Show("你已经提交过申请");
            }
        }
    }
}

四、管理端

管理端只包含一个生成邀请码的功能,生成的邀请码用于注册
c#实现学生考勤系统(附源码和报告)_第6张图片

五、教师端

教师端保函对学生信息的增删改查,修改和增加学生信息时,出勤率会自动更新,增加学生时,也会给给该学生自动生成一个账号,账号为学号,密码为123456,并且也会显示未读的消息。
c#实现学生考勤系统(附源码和报告)_第7张图片

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace 学生考勤系统的设计
{
    public partial class Teacher_Form : Form
    {
        public Teacher_Form()
        {
            InitializeComponent();
        }

        private void Student_Form_Load(object sender, EventArgs e)
        {
            //设置数据表格为只读
            dataGridView1.ReadOnly = true;
            //不允许添加行
            dataGridView1.AllowUserToAddRows = false;
            //背景为白色
            dataGridView1.BackgroundColor = Color.White;
            //只允许选中单行
            dataGridView1.MultiSelect = false;
            //整行选中
            dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
            ShowAllInofmation();
            UnreadMessage();
        }

        //显示所有学生信息
        private void ShowAllInofmation()
        {
            string sql = "select student_id,student_name,class,specialty,phone_number,absence_count,late_count,early_count,attendance from student_infomation";
            MySqlDataAdapter mySqlData = MySqlAccess.GetMySqlDataAdapter(sql);

            DataSet dataSet = new DataSet();
            mySqlData.Fill(dataSet);
            dataGridView1.DataSource = dataSet.Tables[0];

            //设置列标题
            dataGridView1.Columns[0].HeaderText = "学号";
            dataGridView1.Columns[1].HeaderText = "姓名";
            dataGridView1.Columns[2].HeaderText = "班级";
            dataGridView1.Columns[3].HeaderText = "专业";
            dataGridView1.Columns[4].HeaderText = "电话";
            dataGridView1.Columns[5].HeaderText = "旷课次数";
            dataGridView1.Columns[6].HeaderText = "迟到次数";
            dataGridView1.Columns[7].HeaderText = "早退次数";
            dataGridView1.Columns[8].HeaderText = "出勤率";
        }

        private void button4_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Equals(string.Empty) && textBox2.Text.Equals(string.Empty))
                MessageBox.Show("学号或姓名不能为空");
            else
            {
                string sql = "";
                if(!textBox1.Text.Equals(string.Empty))
                    sql = "select student_id,student_name,class,specialty,phone_number,absence_count,late_count,early_count,attendance from student_infomation where student_id = '" + textBox1.Text + "'";
                else
                    sql = "select student_id,student_name,class,specialty,phone_number,absence_count,late_count,early_count,attendance from student_infomation where student_name = '" + textBox2.Text + "'";

                try
                {
                    MySqlDataAdapter mySqlData = MySqlAccess.GetMySqlDataAdapter(sql);
                    DataSet dataSet = new DataSet();
                    mySqlData.Fill(dataSet);
                    dataGridView1.DataSource = dataSet.Tables[0];
                }

                catch(Exception ex)
                {
                    MessageBox.Show("查询失败!\n" + ex.Message);
                }
            }

            textBox1.Clear();
            textBox2.Clear();
        }

        private void button5_Click(object sender, EventArgs e)
        {
            ShowAllInofmation();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            //获取DataGridView控件的值
            //获取学号
            string id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
            //获取姓名
            string name = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();
            //获取班级
            string Class = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();
            //获取专业
            string specialty = dataGridView1.SelectedRows[0].Cells[3].Value.ToString();
            //获取电话
            string phone = dataGridView1.SelectedRows[0].Cells[4].Value.ToString();
            //获取缺席次数
            string absenceCount = dataGridView1.SelectedRows[0].Cells[5].Value.ToString();
            //获取迟到次数
            string lateCount = dataGridView1.SelectedRows[0].Cells[6].Value.ToString();
            //获取早退次数
            string leaveCount = dataGridView1.SelectedRows[0].Cells[7].Value.ToString();

            //创建Update_Form窗口,把学生信息传递给修改界面
            Update_Form update_Form = new Update_Form(id, name, Class, specialty, phone, absenceCount, lateCount, leaveCount);
            // 弹出修改信息修改窗口
            DialogResult dialogResult = update_Form.ShowDialog();

            //DialogResult:获取或设置对话框值,此值是从ShowDialog()方法返回
            //判断是否点击确定按钮
            if (dialogResult == DialogResult.OK)  
                ShowAllInofmation();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                //获取DataGridView控件中选中行的学号
                string id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
                string sql = "delete from student_infomation where student_id = '{0}'";
                sql = string.Format(sql, id);

                MySqlCommand cmd = MySqlAccess.GetMySqlCommand(sql);
                cmd.ExecuteNonQuery();
                MessageBox.Show("删除成功");
                ShowAllInofmation();
            }
            catch(Exception ex)
            {
                MessageBox.Show("删除失败!\n" + ex.Message);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Insert_Form insert_Form = new Insert_Form();
            DialogResult dialogResult = insert_Form.ShowDialog();

            if (dialogResult == DialogResult.OK)
                ShowAllInofmation();
        }

        private void button7_Click(object sender, EventArgs e)
        {
            Login_Form login_Form = new Login_Form();
            this.Hide();
            login_Form.ShowDialog();
            this.Close();
        }

        private void button6_Click(object sender, EventArgs e)
        {
            ApprovalLeave_Form approvalLeave_Form = new ApprovalLeave_Form();
            approvalLeave_Form.ShowDialog();
            UnreadMessage();
        }


        //显示未读信息
        private void UnreadMessage()
        {
            string sql;
            if (Login_Form.userIdentity == "辅导员")
                sql = "select count(*) from leave_state where tut_leave = true";
            else if (Login_Form.userIdentity == "教师")
                sql = "select count(*) from leave_state where ter_leave = true";
            else if (Login_Form.userIdentity == "领导")
                sql = "select count(*) from leave_state where lea_leave = true";
            else
                sql = "select count(*) from leave_state where dean_leave = true";

            MySqlDataReader reader = MySqlAccess.GetMySqlCommand(sql).ExecuteReader();
            reader.Read();
            string num = reader.GetString(0);
            reader.Close();
            if (num == "0")
            {
                label3.Visible = false;
            }
            else
                label3.Text = num;
        }
    }
}

1. 录入学生信息

c#实现学生考勤系统(附源码和报告)_第8张图片

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace 学生考勤系统的设计
{
    public partial class Insert_Form : Form
    {
        public Insert_Form()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Equals(string.Empty) || textBox2.Text.Equals(string.Empty) || 
                textBox3.Text.Equals(string.Empty) || textBox4.Text.Equals(string.Empty) ||
                textBox5.Text.Equals(string.Empty) || textBox6.Text.Equals(string.Empty) ||
                textBox7.Text.Equals(string.Empty) || textBox8.Text.Equals(string.Empty))
            {
                MessageBox.Show("信息不能为空");
                return ; 
            }

            string sql = "insert into student_infomation(student_id, student_name, class, specialty, phone_number, absence_count, late_count, early_count) values('{0}', '{1}', '{2}', '{3}', '{4}', {5}, {6}, {7})";
            sql = string.Format(sql, textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text, textBox7.Text, textBox8.Text);

            try
            {
                MySqlCommand cmd = MySqlAccess.GetMySqlCommand(sql);
                cmd.ExecuteNonQuery();
                MessageBox.Show("添加成功");
                DialogResult = DialogResult.OK;
            }
            catch(Exception ex)
            {
                MessageBox.Show("添加失败!\n");
            }
        }
    }
}

2. 删除学生信息

 private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                //获取DataGridView控件中选中行的学号
                string id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
                string sql = "delete from student_infomation where student_id = '{0}'";
                sql = string.Format(sql, id);

                MySqlCommand cmd = MySqlAccess.GetMySqlCommand(sql);
                cmd.ExecuteNonQuery();
                MessageBox.Show("删除成功");
                ShowAllInofmation();
            }
            catch(Exception ex)
            {
                MessageBox.Show("删除失败!\n" + ex.Message);
            }
        }

3. 修改学生

c#实现学生考勤系统(附源码和报告)_第9张图片

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace 学生考勤系统的设计
{
    public partial class Update_Form : Form
    {
        private string id;
        public Update_Form(string id, string name, string Class, string specialty, string phone, string absenceCount, string lateCount, string leaveCount)
        {
            InitializeComponent();
            textBox1.Text = name;
            textBox2.Text = Class;
            textBox3.Text = specialty;
            textBox4.Text = phone;
            textBox5.Text = absenceCount;
            textBox6.Text = lateCount;
            textBox7.Text = leaveCount;
            this.id = id;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            string sql = "update student_infomation set student_name = '{0}', class = '{1}', specialty = '{2}', phone_number = '{3}', absence_count = {4}, late_count = {5}, early_count = {6} where student_id = '{7}'";
            sql = string.Format(sql, textBox1.Text, textBox2.Text, textBox3.Text, textBox4.Text, textBox5.Text, textBox6.Text, textBox7.Text, id);

            try
            {
                MySqlCommand cmd = MySqlAccess.GetMySqlCommand(sql);
                cmd.ExecuteNonQuery();
                MessageBox.Show("修改成功");
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
            catch(Exception ex)
            {
                MessageBox.Show("修改失败!\n" + ex.Message);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

4. 查询学生

 private void button4_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Equals(string.Empty) && textBox2.Text.Equals(string.Empty))
                MessageBox.Show("学号或姓名不能为空");
            else
            {
                string sql = "";
                if(!textBox1.Text.Equals(string.Empty))
                    sql = "select student_id,student_name,class,specialty,phone_number,absence_count,late_count,early_count,attendance from student_infomation where student_id = '" + textBox1.Text + "'";
                else
                    sql = "select student_id,student_name,class,specialty,phone_number,absence_count,late_count,early_count,attendance from student_infomation where student_name = '" + textBox2.Text + "'";

                try
                {
                    MySqlDataAdapter mySqlData = MySqlAccess.GetMySqlDataAdapter(sql);
                    DataSet dataSet = new DataSet();
                    mySqlData.Fill(dataSet);
                    dataGridView1.DataSource = dataSet.Tables[0];
                }

                catch(Exception ex)
                {
                    MessageBox.Show("查询失败!\n" + ex.Message);
                }
            }

            textBox1.Clear();
            textBox2.Clear();
        }

5. 批假功能

c#实现学生考勤系统(附源码和报告)_第10张图片

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace 学生考勤系统的设计
{
    public partial class ApprovalLeave_Form : Form
    {
        public ApprovalLeave_Form()
        {
            InitializeComponent();
        }

        private void ShowLeaveInfo()
        {
            string sql;
            if (Login_Form.userIdentity == "教师")
                sql = "select student_id, student_name, leave_state, leave_reason from student_infomation where student_id = any(select stu_id from leave_state where ter_leave = true)";
            else if (Login_Form.userIdentity == "院长")
                sql = "select student_id, student_name, leave_state, leave_reason from student_infomation where student_id = any(select stu_id from leave_state where dean_leave = true)";
            else if (Login_Form.userIdentity == "领导")
                sql = "select student_id, student_name, leave_state, leave_reason from student_infomation where student_id = any(select stu_id from leave_state where lea_leave = true)";
            else
                sql = "select student_id, student_name, leave_state, leave_reason from student_infomation where student_id = any(select stu_id from leave_state where tut_leave = true)";

            try
            {
                MySqlDataAdapter mySqlData = MySqlAccess.GetMySqlDataAdapter(sql);
                DataSet dataSet = new DataSet();
                mySqlData.Fill(dataSet);
                dataGridView1.DataSource = dataSet.Tables[0];
            }
            catch(Exception ex)
            {
                MessageBox.Show("系统错误!\n" + ex.Message);
            }

            dataGridView1.Columns[0].HeaderText = "学号";
            dataGridView1.Columns[1].HeaderText = "姓名";
            dataGridView1.Columns[2].HeaderText = "请假时长";
            dataGridView1.Columns[3].HeaderText = "请假理由";
        }

        private void ApprovalLeave_Form_Load(object sender, EventArgs e)
        {
            //设置数据表格为只读
            dataGridView1.ReadOnly = true;
            //不允许添加行
            dataGridView1.AllowUserToAddRows = false;
            //背景为白色
            dataGridView1.BackgroundColor = Color.White;
            //只允许选中单行
            dataGridView1.MultiSelect = false;
            //整行选中
            dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

            ShowLeaveInfo();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                string id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();

                string sql = "update leave_state set {0} = false where stu_id = '{1}'";
                if (Login_Form.userIdentity == "教师")
                    sql = String.Format(sql, "ter_leave", id);
                else if (Login_Form.userIdentity == "院长")
                    sql = String.Format(sql, "dean_leave", id);
                else if (Login_Form.userIdentity == "领导")
                    sql = String.Format(sql, "lea_leave", id);
                else if (Login_Form.userIdentity == "辅导员")
                    sql = string.Format(sql, "tut_leave", id);

                MySqlCommand cmd = MySqlAccess.GetMySqlCommand(sql);
                cmd.ExecuteNonQuery();
                ShowLeaveInfo();
                MessageBox.Show("成功!");
                ShowLeaveInfo();

                //判改学生是否请假成功,如果成功,删除改名学生在数据库中leave_state的数据
                sql = "select * from leave_state where stu_id = '{0}'";
                sql = string.Format(sql, id);
                MySqlDataReader reader = MySqlAccess.GetMySqlCommand(sql).ExecuteReader();

                reader.Read();
                bool flag1 = reader.GetBoolean(1);
                bool flag2 = reader.GetBoolean(2);
                bool flag3 = reader.GetBoolean(3);
                bool flag4 = reader.GetBoolean(4);
                reader.Close();

                //还需要在审核
                if (flag1 || flag2 || flag3 || flag4)
                    return;

                // 不需审核,删掉数据
                sql = "delete from leave_state where stu_id = '{0}'";
                sql = string.Format(sql, id);
                MySqlAccess.GetMySqlCommand(sql).ExecuteNonQuery();
            }
            catch(Exception ex)
            {
                MessageBox.Show("失败\n" + ex.Message);
            }
        }
    }
}

源码及报告

https://download.csdn.net/download/weixin_52068218/87337349
度盘链接:
https://pan.baidu.com/s/1B2mJTeSTz7T3BMcjvVKhDA?pwd=t26r 提取码: t26r 复制这段内容后打开百度网盘手机App,操作更方便哦
–来自百度网盘超级会员v3的分享

你可能感兴趣的:(C#,c#,数据库,mysql)