Winform项目之学生成绩管理系统设计与实现(二)

1.学生信息展示

    public partial class ListStudentForm : Form
    {
        private ClassService classService = new ClassService();
        private StudentService studentService = new StudentService();
        public ListStudentForm()
        {
            InitializeComponent();
            //下拉班级
            this.comBClass.DataSource = classService.GetClassList();
            this.comBClass.DisplayMember = "ClassName";
            this.comBClass.ValueMember = "ClassId";
            this.comBClass.SelectedIndex = -1;
        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

        private void comBClass_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void ListStudentForm_Load(object sender, EventArgs e)
        {

        }

        private void groupBox2_Enter(object sender, EventArgs e)
        {

        }

        //按班级查询
        private void queryStudentList_Click(object sender, EventArgs e)
        {
            if (this.comBClass.SelectedIndex == -1)
            {
                MessageBox.Show("请选择班级!", "信息提示");
                this.comBClass.Focus();
                return;
            }
            List<StudentVo> list = studentService.GetStudentListByClassId(this.comBClass.SelectedValue.ToString());
            this.dgvStudentClass.AutoGenerateColumns = false;
            this.dgvStudentClass.DataSource = list;
        }

        //按学号查询一个学生
        private void queryStudent_Click(object sender, EventArgs e)
        {
            if (this.txtStuId.Text.Trim().Length == 0)
            {
                MessageBox.Show("请输入学生编号!", "信息提示");
                this.txtStuId.Focus();
                return;
            }
            //根据Id查询
            StudentVo studentVo = studentService.QueryStudentByStudentId(this.txtStuId.Text.Trim());
            if (studentVo.StudentName == null)
            {
                MessageBox.Show("您输入的学号不正确!", "信息提示");
                this.txtStuId.Focus();
                this.txtStuId.SelectAll();
            }
            else
            {
                //打开学生信息窗体
                StudentInfoForm studentInfoForm = new StudentInfoForm(studentVo);
                studentInfoForm.Show();
            }

        }

        //修改学生信息
        private void btnEditStu_Click(object sender, EventArgs e)
        {
            //判断用户是否选中
            if (this.dgvStudentClass.RowCount == 0 || this.dgvStudentClass.CurrentRow == null)
            {
                MessageBox.Show("没有要修改的信息!", "信息提示");
                return;
            }
            //获取要修改的StudentId
            string studentId = this.dgvStudentClass.CurrentRow.Cells["StudentId"].Value.ToString();
            StudentVo studentVo = studentService.QueryStudentByStudentId(studentId);
            //显示待修改学生的信息----打开编辑窗口
            EditStudentForm editStudentForm = new EditStudentForm(studentVo);
            DialogResult result = editStudentForm.ShowDialog();
            if (result == DialogResult.OK)
            {
                queryStudentList_Click(null, null);
            }


        }

        //删除学生信息
        private void btnDelStu_Click(object sender, EventArgs e)
        {
            if (this.dgvStudentClass.RowCount == 0 || this.dgvStudentClass.CurrentRow == null)
            {
                MessageBox.Show("没有要删除的学生信息", "信息提示");
            }
            //删除确认
            DialogResult result = MessageBox.Show("确认要删除吗?", "信息提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
            if (result == DialogResult.Cancel)
            {
                return;
            }
            //获取要删除的StudentId
            string studentId = this.dgvStudentClass.CurrentRow.Cells["StudentId"].Value.ToString();
            //根据学号删除
            try
            {
                if (studentService.DeleteStudent(studentId) == 1)
                {
                    MessageBox.Show("删除成功!","信息提示");
                    queryStudentList_Click(null, null);
                }
            }
            catch (Exception  ex)
            {

                MessageBox.Show(ex.Message,"删除信息");
            }
        }
    }

班级查询:

  public List<StuClass> GetClassList()
        {
            List<StuClass> list = new List<StuClass>();
            string sql = "select ClassId,ClassName from  Class";
            SqlDataReader dataReader = SQLHelper.GetReader(sql);

            while (dataReader.Read())
            {
                StuClass stuClass = new StuClass();
                stuClass.ClassId = Convert.ToInt32(dataReader["ClassId"]);
                stuClass.ClassName = dataReader["ClassName"].ToString();
                list.Add(stuClass);
            }
            dataReader.Close();
            return list;
        }

学号查询:

  public StudentInfoForm()
        {
            InitializeComponent();
        }

        public StudentInfoForm(StudentVo studentVo)
        {
            InitializeComponent();
            int x = (System.Windows.Forms.SystemInformation.WorkingArea.Width - this.Size.Width) / 2;
            int y = (System.Windows.Forms.SystemInformation.WorkingArea.Height - this.Size.Height) / 2;
            this.StartPosition = FormStartPosition.Manual; //窗体的位置由Location属性决定  
            this.Location = (Point)new Size(x, y);

            this.laStudentName.Text = studentVo.StudentName.ToString();
            this.laGender.Text = studentVo.Gender.ToString();
            this.laAge.Text = studentVo.Age.ToString();
            this.laBirthday.Text = studentVo.Birthday.ToShortDateString();
            this.laClassName.Text = studentVo.ClassName.ToString();
            this.laPhone.Text = studentVo.PhoneNumber.ToString();
            this.laStundetNo.Text = studentVo.StudentIdNo.ToString();
            this.laAddress.Text = studentVo.StudentAddress.ToString();
            this.laStuImage.Image =studentVo.StuImage.Length ==0?Image.FromFile("default.png") : (Image) new SerializeObjectToString().DeserializeObject(studentVo.StuImage.ToString());
        }

        private void label10_Click(object sender, EventArgs e)
        {

        }

        private void StudentInfoForm_Load(object sender, EventArgs e)
        {

        }

        //关闭窗口
        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

2.学生信息添加

 private ClassService classService = new ClassService();
        private StudentService studentService = new StudentService();
        public AddStudentForm()
        {
            InitializeComponent();
            //班级下拉框
            this.comStuClass.DataSource = classService.GetClassList();
            this.comStuClass.DisplayMember = "ClassName";
            this.comStuClass.ValueMember = "ClassId";
            this.comStuClass.SelectedIndex = -1;
        }

        private void AddStudentForm_Load(object sender, EventArgs e)
        {

        }

        //选择图片
        private void btnPicture_Click(object sender, EventArgs e)
        {
            OpenFileDialog fileDialog = new OpenFileDialog();
            DialogResult result = fileDialog.ShowDialog();
            if (result == DialogResult.OK)
            {
                this.stuPicture.Image = Image.FromFile(fileDialog.FileName);
            }
        }

        //添加学生
        private void btnAddStu_Click(object sender, EventArgs e)
        {
            //数据验证
            if (this.txtStuName.Text.Trim().Length == 0)
            {
                MessageBox.Show("请填写学生姓名!", "输入提示");
                this.txtStuName.Focus();
                return;
            }
            if (!this.manStu.Checked && !womenStu.Checked)
            {
                MessageBox.Show("请选择性别!", "输入提示");
                return;
            }
            if ((DateTime.Now.Year - Convert.ToDateTime(this.stuDate.Text).Year) < 18)
            {
                MessageBox.Show("学生年龄不能小于18岁,请修改!", "输入提示");
                this.stuDate.Focus();
                return;
            }
            if (this.comStuClass.SelectedIndex == -1)
            {
                MessageBox.Show("请选择班级!", "输入提示");
                return;
            }
            if (this.txtStuPhone.Text.Trim().Length == 0)
            {
                MessageBox.Show("请填写学生手机号!", "输入提示");
                this.txtStuPhone.Focus();
                return;
            }
            //判断手机号格式
            if (!DataValidate.IsPhone(this.txtStuPhone.Text.Trim()))
            {
                MessageBox.Show("手机号格式有误!", "输入提示");
                this.txtStuPhone.Focus();
                this.txtStuPhone.SelectAll();
                return;
            }
            if (this.txtStuCId.Text.Trim().Length == 0)
            {
                MessageBox.Show("请填写学生身份证号!", "输入提示");
                this.txtStuCId.Focus();
                return;
            }
            //验证身份证号格式
            if (!DataValidate.IsIdentityCard(this.txtStuCId.Text.Trim()))
            {
                MessageBox.Show("身份证格式有误!", "输入提示");
                this.txtStuCId.Focus();
                this.txtStuCId.SelectAll();
                return;
            }

            if (this.stuAddress.Text.Trim().Length == 0)
            {
                MessageBox.Show("请填写学生地址!", "输入提示");
                this.stuAddress.Focus();
                return;
            }
            //封装对象
            Student student = new Student();
            student.StudentName = this.txtStuName.Text.Trim();
            student.Gender = this.manStu.Checked ? "男" : "女";
            student.Birthday = Convert.ToDateTime(this.stuDate.Text.Trim());
            student.StudentIdNo = this.txtStuCId.Text.Trim();
            student.StuImage = this.stuPicture.Image == null ? "" : new SerializeObjectToString().SerializeObject(this.stuPicture.Image);
            student.PhoneNumber = this.txtStuPhone.Text.Trim();
            student.StudentAddress = this.stuAddress.Text.Trim();
            student.ClassId = Convert.ToInt32(this.comStuClass.SelectedValue);
            student.Age = DateTime.Now.Year - Convert.ToDateTime(this.stuDate.Text).Year;
            //提交学生对象
            try
            {
                int result = studentService.AddStudent(student);
                if (result == 1)
                {
                    DialogResult dialogResult = MessageBox.Show("添加成功!要继续添加吗?", "信息提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                    if (dialogResult == DialogResult.OK)
                    {
                        //清空文本框
                        foreach (Control item in this.stuGroupBox.Controls)
                        {
                            if (item is TextBox)
                            {
                                item.Text = "";
                            }
                            else if (item is RadioButton)
                            {
                                ((RadioButton)item).Checked = false;
                            }
                            else if (item is ComboBox)
                            {
                                ((ComboBox)item).SelectedIndex = -1;
                            }
                            else if (item is DateTimePicker)
                            {
                                ((DateTimePicker)item).Value = DateTime.Now;
                            }
                        }

                        this.stuPicture.Image = null;//图片清空
                        this.txtStuName.Focus();//光标定位到名字
                    }

                    if (dialogResult == DialogResult.Cancel)
                    {
                        btuCloseAddStu_Click(null,null);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
                throw;
            }

            //判断结果是否成功


        }
        //关闭
        private void btuCloseAddStu_Click(object sender, EventArgs e)
        {
            this.Close();
        }

3.学生信息修改

 private ClassService classService = new ClassService();
        private StudentService studentService = new StudentService();

        public EditStudentForm()
        {
            InitializeComponent();
        }

        public EditStudentForm(StudentVo studentVo)
        {
            InitializeComponent();

            //班级下拉框
            this.comStuClass.DataSource = classService.GetClassList();
            this.comStuClass.DisplayMember = "ClassName";
            this.comStuClass.ValueMember = "ClassId";
            this.comStuClass.Text = studentVo.ClassName;

            this.txtStuId.Text = studentVo.StudentId.ToString();
            this.txtStuCId.Text = studentVo.StudentId.ToString();
            this.txtStuName.Text = studentVo.StudentName.ToString();
            this.stuDate.Text = studentVo.Birthday.ToShortDateString();
            this.txtStuPhone.Text = studentVo.PhoneNumber.ToString();
            this.txtStuCId.Text = studentVo.StudentIdNo.ToString();
            this.stuAddress.Text = studentVo.StudentAddress.ToString();
            if (studentVo.Gender == "男")
            {
                this.manStu.Checked = true;
            }
            else
            {
                this.womenStu.Checked = true;
            }
            this.stuPicture.Image = studentVo.StuImage.Length == 0 ? Image.FromFile("default.png") : (Image)new SerializeObjectToString().DeserializeObject(studentVo.StuImage.ToString());

        }

        private void stuPicture_Click(object sender, EventArgs e)
        {

        }

        private void EditStudentForm_Load(object sender, EventArgs e)
        {
            int x = (System.Windows.Forms.SystemInformation.WorkingArea.Width - this.Size.Width) / 2;
            int y = (System.Windows.Forms.SystemInformation.WorkingArea.Height - this.Size.Height) / 2;
            this.StartPosition = FormStartPosition.Manual; //窗体的位置由Location属性决定  
            this.Location = (Point)new Size(x, y);
        }

        private void btnPicture_Click(object sender, EventArgs e)
        {
            OpenFileDialog fileDialog = new OpenFileDialog();
            DialogResult result = fileDialog.ShowDialog();
            if (result == DialogResult.OK)
            {
                this.stuPicture.Image = Image.FromFile(fileDialog.FileName);
            }
        }

        //提交修改信息
        private void btnEditStu_Click(object sender, EventArgs e)
        {
            //数据验证
            if (this.txtStuName.Text.Trim().Length == 0)
            {
                MessageBox.Show("请填写学生姓名!", "输入提示");
                this.txtStuName.Focus();
                return;
            }
            if (!this.manStu.Checked && !womenStu.Checked)
            {
                MessageBox.Show("请选择性别!", "输入提示");
                return;
            }
            if ((DateTime.Now.Year - Convert.ToDateTime(this.stuDate.Text).Year) < 18)
            {
                MessageBox.Show("学生年龄不能小于18岁,请修改!", "输入提示");
                this.stuDate.Focus();
                return;
            }
            if (this.comStuClass.SelectedIndex == -1)
            {
                MessageBox.Show("请选择班级!", "输入提示");
                return;
            }
            if (this.txtStuPhone.Text.Trim().Length == 0)
            {
                MessageBox.Show("请填写学生手机号!", "输入提示");
                this.txtStuPhone.Focus();
                return;
            }
            //判断手机号格式
            if (!DataValidate.IsPhone(this.txtStuPhone.Text.Trim()))
            {
                MessageBox.Show("手机号格式有误!", "输入提示");
                this.txtStuPhone.Focus();
                this.txtStuPhone.SelectAll();
                return;
            }
            if (this.txtStuCId.Text.Trim().Length == 0)
            {
                MessageBox.Show("请填写学生身份证号!", "输入提示");
                this.txtStuCId.Focus();
                return;
            }
            //验证身份证号格式
            if (!DataValidate.IsIdentityCard(this.txtStuCId.Text.Trim()))
            {
                MessageBox.Show("身份证格式有误!", "输入提示");
                this.txtStuCId.Focus();
                this.txtStuCId.SelectAll();
                return;
            }

            if (this.stuAddress.Text.Trim().Length == 0)
            {
                MessageBox.Show("请填写学生地址!", "输入提示");
                this.stuAddress.Focus();
                return;
            }   
            //封装对象
            Student student = new Student();
            student.StudentId = Convert.ToInt32(this.txtStuId.Text.Trim().ToString());
            student.StudentName = this.txtStuName.Text.Trim();
            student.Gender = this.manStu.Checked ? "男" : "女";
            student.Birthday = Convert.ToDateTime(this.stuDate.Text.Trim());
            student.StudentIdNo = this.txtStuCId.Text.Trim();
            student.StuImage = this.stuPicture.Image == null ? "" : new SerializeObjectToString().SerializeObject(this.stuPicture.Image);
            student.PhoneNumber = this.txtStuPhone.Text.Trim();
            student.StudentAddress = this.stuAddress.Text.Trim();
            student.ClassId = Convert.ToInt32(this.comStuClass.SelectedValue);
            student.Age = DateTime.Now.Year - Convert.ToDateTime(this.stuDate.Text).Year;
            //进行判断
            try
            {
                if (studentService.updateStudent(student) ==1)
                {
                    MessageBox.Show("学员信息修改成功!","信息提示");
                    this.DialogResult = DialogResult.OK;
                    this.Close();
                }
            }
            catch (Exception ex)
            {

                MessageBox.Show(ex.Message);
            }



        }

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

4.学生信息删除

   /// <summary>
        /// 删除学生
        /// </summary>
        /// <param name="studentId"></param>
        /// <returns></returns>
        public int DeleteStudent(string studentId)
        {
            string sql = "delete from Student where StudentId=" + studentId;
            try
            {
                return SQLHelper.Update(sql);
            }
            catch (SqlException ex)
            {

                if (ex.Number == 547)
                {
                    throw new Exception("当前学生信息已经被使用,不能删除!");

                }
                else
                {
                    throw new Exception("删除信息错误:" + ex.Message);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("删除学生信息错误!" + ex.Message);
            }
        }

 

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页