Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
6.3 kB
2
Indexable
Never
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace StudentManagementSystem
{
    public partial class frmStudent : Form
    {
        public frmStudent(string msv)
        {
            this.msv = msv; // Truyền lại mã sinh viên khi form chạy
            InitializeComponent();
        }
        private string msv;
        private void frmStudent_Load(object sender, EventArgs e)
        {
            if(string.IsNullOrEmpty(msv))
            {
                this.Text = "Add new student";
            }    
            else 
            {
                this.Text = "Update student's information";
                //Lấy thông tin chi tiết từ của 1 sinh viên dựa vào msv
                //msv là mã sinh viên đã được truyền từ form StudentList (part4)
                var r = new Database().Select("SelectStudent '" + msv + "'");
                //MessageBox.Show(r[0].ToString()); Truyền thành công 
                txtFirst.Text = r["Last_Name"].ToString();
                txtMiddle.Text = r["Middle_Name"].ToString();
                txtLast.Text = r["Last_Name"].ToString();
                mtbBirthday.Text = r["Birthday"].ToString();
                if (int.Parse(r["Gender"].ToString()) == 0) 
                {
                    rbtMale.Checked = true;
                }
                else 
                { 
                    rbtMale.Checked = true;
                }
                txtHometown.Text = r["Home_town"].ToString();
                txtAddress.Text = r["Current_address"].ToString();
                txtPhone.Text = r["Phone"].ToString();
                txtEmail.Text = r["Email"].ToString();
            }
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            // Trường hợp 1: Msv không có giá trị => Thêm mới sinh viên 
            // Trường hợp 2: Nếu msv có giá trị => Update thông tin sinh viên
            // Ý tưởng: Khi thêm mới hay cập nhật thì đều cần tất cả thông tin sinh viên
            // Riêng cập nhật thì yêu cầu msv 
            string sql = "";
            string First_name = txtFirst.Text;
            string Middle_name = txtMiddle.Text;
            string Last_name = txtLast.Text;
            DateTime Birthday;
            // Vì sql xài dạng yyyy/mm/dd nên chúng ta nên ép kiểu sang dd/mm/yyyy
            try
            {
                Birthday = DateTime.ParseExact(mtbBirthday.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture);
            }
            catch (Exception)
            {
                MessageBox.Show("Birthday is not valid");
                mtbBirthday.Select();
                return;
            }

            string Gender = rbtMale.Checked ? "0" : "1"; //Toán tử 2 ngôi
            // Nếu rbtMale được chọn là giá trị 0
            // Ngược lại thì giá trị 1 => Nữ

            string Home_town = txtHometown.Text;
            string Current_address = txtAddress.Text;
            string Phone = txtPhone.Text;
            string Email = txtEmail.Text;

            // Khai báo danh sách tham số là FirstPara
            List<CustomParameter> FirstPara = new List<CustomParameter>();
            if (string.IsNullOrEmpty(msv)) // Thêm mới 
            {
                sql = "AddNewStudent"; // Gọi procedure add sv
            }
            else // Cập nhật 
            {
                sql = "UpdateStudent";
                FirstPara.Add(new CustomParameter()
                {
                    key = "@Student_ID",
                    value = msv,
                });
            }

            FirstPara.Add(new CustomParameter()
            {
                key = "@First_Name",
                value = First_name,
            });

            FirstPara.Add(new CustomParameter()
            {
                key = "@Middle_Name",
                value = Middle_name,
            });            
            
            FirstPara.Add(new CustomParameter()
            {
                key = "@Last_Name",
                value = Last_name,
            });            
            
            FirstPara.Add(new CustomParameter()
            {
                key = "@Birthday",
                value = Birthday.ToString("yyyy-MM-dd"),
            });            
            
            FirstPara.Add(new CustomParameter()
            {
                key = "@Gender",
                value = Gender,
            });

            FirstPara.Add(new CustomParameter()
            {
                key = "@Home_town",
                value = Home_town,
            });            
            
            FirstPara.Add(new CustomParameter()
            {
                key = "@Current_address",
                value = Current_address,
            });            
            
            FirstPara.Add(new CustomParameter()
            {
                key = "@Phone",
                value = Phone,
            });
            
            FirstPara.Add(new CustomParameter()
            {
                key = "@Email",
                value = Email,
            });

            var rs = new Database().ExeCute(sql, FirstPara); // Truyền 2 tham số là câu lệnh sql
            // Và danh sách các tham số 
            if (rs == 1) // Nếu thành công
            {
                if (string.IsNullOrEmpty(msv))// Nếu thêm mới
                {
                    MessageBox.Show("Add student successfully !");
                }
                else // Nếu cập nhật
                {
                    MessageBox.Show("Update student successfully !");
                }
                this.Dispose();
            }
            else // Nếu thất bại
            {
                MessageBox.Show("Execute failed");
            } 
                
             



        }
    }
}