⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classeditfrm.cs

📁 一个不错的文档
💻 CS
字号:
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 MySchoolPrj.Entity;

using MySchoolPrj.DAO;

namespace SchoolManageprj
{
    public partial class ClassEditFrm : Form
    {
        //设置状态
        private State state;

        public State State
        {
            get { return state; }
            set { state = value; }
        }
        private ClassInfos cif;

        public ClassInfos Cif
        {
            get { return cif; }
            set { cif = value; }
        }
        public ClassEditFrm()
        {
            InitializeComponent();
        }
        //设置界面各元素
        public void setForm()
        {

            txtClassName.ReadOnly = true;         //班级名称为只读
            //添加校区下拉框的值
            cmbSchoolName.Items.AddRange(new string[] { "交大校区","省图书馆校区","双鱼校区"});
            //设置下拉风格
            cmbSchoolName.DropDownStyle = ComboBoxStyle.DropDownList;
            //默认选项
            cmbSchoolName.SelectedIndex = 1;
            //默认按钮选项
            rdbtnFirstQ.Checked = true;
            //数据库连接
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            cmd.Connection = DBHelper.con;
            string sql = "select * from teacher";
            cmd.CommandText = sql;
            DBHelper.con.Open();
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                string str = reader["teacherName"].ToString();
                cmbClassMaster.Items.Add(str);           //从数据库中提取教师姓名
            }
            reader.Close();
            DBHelper.con.Close();     //关闭数据库
            //判断教师信息是否为空
            //如果有信息设置下拉框默认选项和下拉框风格
            if (cmbClassMaster.Items.Count >0)
            cmbClassMaster.SelectedIndex = 0;
            cmbClassMaster.DropDownStyle = ComboBoxStyle.DropDownList;
            
        }
        //接收修改数据
        public void getUpdataData()
        {
            
            string temp = cif.ClassId.Substring(0, 2);
            //判断选择的校区
            switch (temp) 
            { 
                case "AT":
                    cmbSchoolName.SelectedIndex = 1;
                    break;
                case "AJ":
                    cmbSchoolName.SelectedIndex = 0;
                    break;
                case "AQ":
                    cmbSchoolName.SelectedIndex = 2;
                    break;
            }
            cmbSchoolName.Enabled = false;
            dtpStarDate.Value = Convert.ToDateTime(cif.StarDate);
            dtpStarDate.Enabled = false;
            dtpEndDate.Value = Convert.ToDateTime(cif.EndDate);
            txtClassCount.Text = cif.ClassCount.ToString();
            temp = cif.ClassId.Substring(2,1);
            switch (temp)
            { 
                case "1":
                    rdbtnFirstQ.Checked = true;
                    break;
                case "2":
                    rdbtnScondQ.Checked = true;
                    break;
                case "3":
                    rdbtnThirdQ.Checked = true;
                    break;
            }
            //设置单选按钮的默认值
            rdbtnFirstQ.Enabled = false;
            rdbtnScondQ.Enabled = false;
            rdbtnThirdQ.Enabled = false;
            cmbClassMaster.SelectedItem = cif.TeacherName;

        }
        //设置界面初始化信息
        private void ClassEditFrm_Load(object sender, EventArgs e)
        {
            //设置班级初始值
            txtClassCount.Text = "1";
            txtClassCount.Text = "";
            setForm();
            //判断添加信息还是修改信息
            if (state == State.dsAdd)
            {                
                dtpStarDate.MaxDate = DateTime.Now;
                txtClassName.Text = "";
                setClassName();
            }
            else
            {
                dtpStarDate.MaxDate = DateTime.Now;
                getUpdataData();
                txtClassName.Text = "";
                txtClassName.Text = cif.ClassId;
            }
        }
        //设置班级号信息
        public void setClassName()
        {

            if (cmbSchoolName.SelectedIndex == 0)
                txtClassName.Text += "AJ";
            else if (cmbSchoolName.SelectedIndex == 1)
                txtClassName.Text += "AT";
            else
                txtClassName.Text += "AQ";
            if (rdbtnFirstQ.Checked)
                txtClassName.Text += 1 + "Q";
            else if (rdbtnScondQ.Checked)
                txtClassName.Text += 2 + "Q";
            else
                txtClassName.Text += 3 + "Q";
            if (dtpStarDate.Value.Year < 2010 && dtpStarDate.Value.Year > 1999)
                txtClassName.Text += dtpStarDate.Value.Year.ToString().Substring(3, 1);
            else if (dtpStarDate.Value.Year >= 2010)
                txtClassName.Text += dtpStarDate.Value.Year.ToString().Substring(2, 2);
            if (dtpStarDate.Value.Month < 10)
                txtClassName.Text += "0" + dtpStarDate.Value.Month.ToString();
            else
                txtClassName.Text += dtpStarDate.Value.Month.ToString();
            txtClassName.Text += selectedClassName();
        }
        //查找已有班级号来确定新班级号
        public string selectedClassName()
        {
            string lastNo="1";
            //数据库连接
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            cmd.Connection = DBHelper.con;
            string sql = "select classId from classInfo";
            cmd.CommandText = sql;
            DBHelper.con.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                string temp = dr[0].ToString();
                if (dtpStarDate.Value.Year < 2010)
                {
                    string str = temp.Substring(0, 7);
                    if (str != txtClassName.Text)
                        lastNo = "1";
                    else
                        lastNo = (Convert.ToInt32(temp.Substring(7))+1).ToString();
                }
                else
                {
                    string str = temp.Substring(0, 8);
                    if (str != txtClassName.Text)
                        lastNo = "1";
                    else
                        lastNo = (Convert.ToInt32(temp.Substring(8))+1).ToString();
                }
            }
            dr.Close();
            DBHelper.con.Close();
            return lastNo;
        }
        //设置班级名称初始值
        private void cmbSchoolName_SelectedIndexChanged(object sender, EventArgs e)
        {
            txtClassName.Text = "";
            setClassName();
        }
        //入学时间
        private void dtpStarDate_ValueChanged(object sender, EventArgs e)
        {
            txtClassName.Text = "";
            setClassName();
        }
        //选择第一学期
        private void rdbtnFirstQ_CheckedChanged(object sender, EventArgs e)
        {
            txtClassName.Text = "";
            setClassName();
        }
        //选择第二学期
        private void rdbtnScondQ_CheckedChanged(object sender, EventArgs e)
        {
            txtClassName.Text = "";
            setClassName();
        }
        //选择第三学期
        private void rdbtnThirdQ_CheckedChanged(object sender, EventArgs e)
        {
            txtClassName.Text = "";
            setClassName();
        }
        //设置班级人数只能为数字
        private void txtClassCount_KeyPress(object sender, KeyPressEventArgs e)
        {
            char ch = e.KeyChar;
            
            if ((Keys)ch != Keys.Back)
            {
                if (ch < '0' || ch > '9')
                    e.Handled = true;
            }
        }
        //关闭窗体
        private void btnConcel_Click(object sender, EventArgs e)
        {
            this.Close();
        }
        //获取界面数据
        public ClassInfos getInfo()
        {
            ClassInfos clif = new ClassInfos();
            clif.ClassId = txtClassName.Text;
            clif.ClassCount = Convert.ToInt32(txtClassCount.Text);
            clif.TeacherName = cmbClassMaster.SelectedItem.ToString();
            clif.StarDate = dtpStarDate.Value.ToLongDateString();
            clif.EndDate = dtpEndDate.Value.ToLongDateString();
            clif.Meno = txtMeno.Text;
            return clif;
        }
        //获取教师号
        public string getTeacherId()
        {
            string teacherid;
            //数据库连接
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            cmd.Connection = DBHelper.con;
            string sql = "select teacherId from teacher where teacherName='" + cmbClassMaster.SelectedItem.ToString() + "'";
            cmd.CommandText = sql;
            DBHelper.con.Open();
            teacherid =(string) cmd.ExecuteScalar();
            DBHelper.con.Close();
            return teacherid;
        }
        //将班级数据提交到数据库
        public void addClasses(ClassInfos c)
        {
            string teacherid = getTeacherId();
            try
            {
                SqlCommand cmd = new SqlCommand();
                cmd.CommandType = CommandType.Text;
                cmd.Connection = DBHelper.con;
                string sql = string.Format("insert into classInfo values('{0}','{1}','{2}',{3},'{4}','{5}')", c.ClassId, teacherid, c.StarDate, c.ClassCount, c.EndDate, c.Meno);
                cmd.CommandText = sql;
                DBHelper.con.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                MessageBox.Show("对不起,已注册过此班级,请重新输入","提示");
            }
            finally
            {
                DBHelper.con.Close();
            }
        }
        //将修改后的班级数据提交到数据库
        public void updataClasses(ClassInfos c)
        {
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            cmd.Connection = DBHelper.con;
            string sql = string.Format("update classInfo set teacherId='{1}',studentcount={2},enddate='{3}'," +
                "memo='{4}' where classId='{0}'", c.ClassId, getTeacherId(), c.ClassCount, c.EndDate, c.Meno);
            cmd.CommandText = sql;
            DBHelper.con.Open();
            cmd.ExecuteNonQuery();
            DBHelper.con.Close();
        }
        //班级人数不能为空
        public bool validClassCountIsNull() {
            //判断班级人数是否为空
            if (txtClassCount.Text == "")
            {
                MessageBox.Show("班级人数不能为空!");
                btnOk.Enabled = false;
                return false;
            }
                //判断班主任信息是否为空
            else if (cmbClassMaster.Items.Count < 1) {
                MessageBox.Show("班主任不能为空!");
                btnOk.Enabled = false;
                return false;
            }
            else
            {
                btnOk.Enabled = true;
                return true;
            }
        }
        //提交数据
        private void btnOk_Click(object sender, EventArgs e)
        {
            //添加信息
            if (state == State.dsAdd)
            {
                if (validClassCountIsNull())
                {
                    if (Convert.ToInt32(txtClassCount.Text) < getStudentCount())
                    {
                        MessageBox.Show("班级人数不能少于班级实际人数!");
                        txtClassCount.Text = "";
                    }
                    else
                    {
                        addClasses(getInfo());
                    }
                }
                else
                    return;
            }
                //修改信息
            else
            {
                if (validClassCountIsNull())
                {
                    if (Convert.ToInt32(txtClassCount.Text) < getStudentCount())
                    {
                        MessageBox.Show("班级人数不能少于班级实际人数!");
                        txtClassCount.Text = "";
                    }
                    else
                    {
                        updataClasses(getInfo());
                    }
                }
                else
                    return;
            }
            //关闭窗体
            this.Close();
        }
        //获取学生人数
        public int getStudentCount() {
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            cmd.Connection = DBHelper.con;
            string sql = "select count(*) from student where classid='" + txtClassName.Text + "'";
            cmd.CommandText = sql;
            DBHelper.con.Open();
            int count = (int)cmd.ExecuteScalar();
            DBHelper.con.Close();
            return count;
        }
        //班级人数
        private void txtClassCount_TextChanged(object sender, EventArgs e)
        {
            //如果班级人数为空
            if (txtClassCount.Text == "")
                btnOk.Enabled = false;
            else
                btnOk.Enabled = true;
            
        }
        //结课时间
        private void dtpEndDate_ValueChanged(object sender, EventArgs e)
        {
            dtpEndDate.MinDate = DateTime.Now;
            dtpStarDate.MaxDate = DateTime.Now;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -