Untitled
unknown
plain_text
2 years ago
6.3 kB
7
Indexable
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");
}
}
}
}
Editor is loading...