Xử lý các sự kiện trong frmGiangVien:

Một phần của tài liệu Luận văn quản lý sinh viên thực tập (Trang 45 - 52)

V. Form Giảng viên – frmGiangVien

2. Xử lý các sự kiện trong frmGiangVien:

- Sau khi kết nối csdl bằng câu lệnh thì ta sẽ lần lượt xử lý các sự kiện

cho từng button và combobox, datagridview:

OleDbConnection dbConn = new OleDbConnection("Provider

= Microsoft.JET.OLEDB.4.0; Data Source = " +

Application.StartupPath + "\\QLSVTT.mdb");

 Xử lý sự kiện cho nút btnThemGV:

- Khi muốn thêm giảng viên mới và các thông tin liên quan đến giảng viên đó thì bạn chỉ cần nhấn nút thêm, các ô textbox và combobox, datatimepicker ..sẽ tự động nhập trắng lại. Bạn nhập thông tin về giảng viên đó vào đó rùi nhấn lưu. Thông tin về giảng viên vừa thêm sẽ có

mặt trong datagridview.

- Để làm được điều đó, bạn phải thêm đoạn mã sau vào phương thức

btnThemGV:

//Nhập trắng lại các ô textbox và combobox để thêm dữ liệu vào csdl

private void btnThemGV_Click(object sender, EventArgs e) { txtMaGV.Text = ""; txtTenGV.Text = ""; dtPickerNgaySinh.Text = ""; txtSDT.Text = ""; txtEmail.Text = ""; txtDiaChi.Text = ""; txtMaBM.Text = ""; btnLuuGV.Text = "Lưu"; }

 Xử lý sự kiện cho nút btnLuuGV:

- Đây là button hỗ trợ cho việc thêm và sửa thông tin giảng viên. Sau khi

thay đổi thông tin thì thông tin về giảng viên đó phải được lưu lại trong

datagridview. Khi nhấn nút thêm thì btnLuuGV vẫn là Lưu, còn khi nhấn nút sửa thì btnLuuGV sẽ chuyển đổi lại thành Cập nhật

-

//cập nhật thông tin về giảng viên

private void btnLuuGV_Click(object sender, EventArgs e) {

dbConn.Open();

if (btnLuuGV.Text == "Cập Nhật") {

//dbConn.Open();

string strUpdate = "Update GiangVienHDTT Set MaGV = '" + txtMaGV.Text + "', TenGV = '" + txtTenGV.Text + "',

GioiTinhGV= " + rdNam.Checked + ", NgaySinhGV = '" + dtPickerNgaySinh.Text + "',SDT = '" + txtSDT.Text + "',EMailGV = '" + txtEmail.Text + "',DiaChiGV = '" + txtDiaChi.Text + "' Where MaGV = '" + txtMaGV.Text + "'";

OleDbCommand dbCmd = new OleDbCommand(strUpdate, dbConn); dbCmd.ExecuteNonQuery(); btnLuuGV.Text = "Lưu"; HienThi(); txtMaGV.ReadOnly = false; } else {

DataSet dbSet = new DataSet();

string mstr = "Select * From GiangVienHDTT";

OleDbDataAdapter dbAdpt = new

OleDbDataAdapter(mstr, dbConn); dbAdpt.Fill(dbSet);

if (txtMaGV.Text !=

dbSet.Tables[0].Rows[0]["MaGV"].ToString()) {

if ((txtMaGV.Text != "") && (txtTenGV.Text != "")) {

//dbConn.Open();

string strInsert = "Insert Into GiangVienHDTT Values('" + txtMaGV.Text + "','"

+ txtTenGV.Text + "'," + rdNam.Checked + ",'" + dtPickerNgaySinh.Text + "'," + txtSDT.Text + ",'" + txtEmail.Text + "','" + txtDiaChi.Text + "','" + txtMaBM.Text + "')";

OleDbCommand mdbComd = new

OleDbCommand(strInsert, dbConn);

mdbComd.ExecuteNonQuery(); dbConn.Close(); HienThi(); txtMaGV.ReadOnly = false; txtTenGV.ReadOnly = false; txtMaBM.ReadOnly = false; } else {

MessageBox.Show("Chưa nhập mã giảng viên và tên giảng viên. Hãy kiểm tra lại", "Thông báo",

MessageBoxButtons.OK, MessageBoxIcon.Exclamation); }

} else

MessageBox.Show("Đã trùng mã giảng viên. Mời bạn nhập lại", "Thông báo", MessageBoxButtons.OK,

MessageBoxIcon.Exclamation); txtMaGV.Focus(); txtMaGV.SelectAll(); } } }

 Xử lý sự kiện cho nút btnSuaGV:

- Khi các thông tin về giảng viên đã được thay đổi, thông tin trong hệ

thống đã không còn phù hớp với thực tế. Hệ thống phải cập nhật lại thông tin cho chính xác và người quản lý hệ thống sẽ làm công việc

này.

- Để sửa thông tin về bất kỳ giảng viên nào đó, bạn chọn 1 row trong

datagridview có chứa đầy đủ các thông tin về giảng viên cần sửa rồi

nhấn nút sửa, nút lưu chuyển thành cập nhật. Thông tin đó sẽ được hiển

thị lên các ô textbox, combobox, datatimepicker, radio…tương ứng.

Bán sẽ chỉnh sửa thông tin trong đó rồi nhấn nút cập nhật. Thông tín sẽ được chỉnh sửa lại và lưu lại trong lưới.

- Dưới đây là đoạn mã của phương thức btnSuaGV: //Sửa thông tin về giảng viên

private void btnSuaGV_Click(object sender, EventArgs e) {

if (dgvTTGV.SelectedRows.Count > 0) {

dbConn.Open();

DataSet dbSet = new DataSet();

string str = "SELECT BoMon.TenBM, GiangVienHDTT.MaGV, GiangVienHDTT.TenGV, GiangVienHDTT.GioiTinhGV,

GiangVienHDTT.NgaySinhGV, GiangVienHDTT.SDT,

GiangVienHDTT.EmailGV, GiangVienHDTT.DiaChiGV, GiangVienHDTT.MaBM FROM BoMon INNER JOIN GiangVienHDTT ON BoMon.MaBM =

GiangVienHDTT.MaBM Where MaGV = '" +

dgvTTGV.SelectedRows[0].Cells[0].Value + "'";

OleDbDataAdapter dbAdpt = new

OleDbDataAdapter(str, dbConn); dbAdpt.Fill(dbSet); dbConn.Close();

txtMaBM.Text =

dbSet.Tables[0].Rows[0]["MaBM"].ToString();

txtMaGV.Text =

txtTenGV.Text = dbSet.Tables[0].Rows[0]["TenGV"].ToString();

dtPickerNgaySinh.Text =

dbSet.Tables[0].Rows[0]["NgaySinhGV"].ToString(); if

(dbSet.Tables[0].Rows[0]["GioitinhGV"].ToString().Equals("True")) { rdNam.Checked = true; } else { rdNu.Checked = true; } txtSDT.Text = dbSet.Tables[0].Rows[0]["SDT"].ToString(); txtDiaChi.Text =

dbSet.Tables[0].Rows[0]["DiaChiGV"].ToString();

txtEmail.Text =

dbSet.Tables[0].Rows[0]["EmailGV"].ToString(); } btnLuuGV.Text = "Cập Nhật"; txtMaBM.Visible = true; }

 Xử lý sự kiện cho nút btnXoaGV:

- Tương tự như sinh viên, để xóa thông tin của một giảng viên nào đó,

bạn chỉ cần chọn 1 row trong dtgridview có chứa thông tin của giảng viên đó và nhấn nút xóa. Một hộp thoại thông báo sẽ hiện ra hỏi “Bạn

có muốn xóa hay không?”. Nếu đồng ý xóa thì chọn Yes, row đó sẽ

biến mất khỏi dtgridview. Còn không muốn tiếp tục xóa thì chọn No,

dữ liệu vẫn được toàn vẹn như cũ. - Đoạn mã của btnXoaGV:

//xóa thông tin về giảng viên

private void btnXoaGV_Click(object sender, EventArgs e) {

if (MessageBox.Show("Bạn có muốn xóa hay không?",

"Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) ==

DialogResult.Yes) {

dbConn.Open();

string str = "Delete from GiangVienHDTT Where MaGV = '" + dgvTTGV.SelectedRows[0].Cells[0].Value + "'";

OleDbCommand dbDelete = new OleDbCommand(str, dbConn);

dbConn.Close(); HienThi(); }

}

 Xử lý sự kiện cho nút btnThoat:

- Xử lý nút thoát khỏi form chỉ với 1 câu lệnh:

//đóng form lại

private void btnThoat_Click(object sender, EventArgs e) {

this.Close(); }

 Xem thông tin giảng viên theo từng bộ môn:

- Để xem thông tin giảng viên theo từng bộ môn bạn chỉ cần chọn bộ

môn trong cbTenBoMon mà nó sổ xuống.

- Thêm phương thức mới private void

cbTenBM_SelectedIndexChanged(object sender,

EventArgs e):

//hiển thị thông tin giảng viên từ cbTenBM

private void cbTenBM_SelectedIndexChanged(object sender,

EventArgs e) {

dbConn.Open();

string str = "SELECT GiangVienHDTT.MaGV,

GiangVienHDTT.TenGV, GiangVienHDTT.GioiTinhGV,

GiangVienHDTT.GioiTinhGV, GiangVienHDTT.NgaySinhGV,

GiangVienHDTT.SDT, GiangVienHDTT.EmailGV, GiangVienHDTT.DiaChiGV, BoMon.MaBM FROM BoMon INNER JOIN GiangVienHDTT ON BoMon.MaBM = GiangVienHDTT.MaBM WHERE BoMon.TenBM ='" + cbTenBM.Text + "'"; OleDbDataAdapter dbAdpt = new OleDbDataAdapter(str, dbConn);

DataSet dbSet = new DataSet(); dbAdpt.Fill(dbSet);

dbConn.Close();

dgvTTGV.DataSource = dbSet.Tables[0]; }

 Đưa dữ liệu cho dgvTTGV và cboTenBM:

- Đưa dữ liệu vào dgvTTGV để hiển thị tất cả các thông tin về giảng viên. Đồng thời giúp cho việc sửa lại thông tin bằng cách chọn row ở lưới rồi đưa lên textbox, combobox và datatimepicker..

//private hiển thị thông tin lên lưới

private void HienThi() {

//dbConn.Open();

string str = "Select * From GiangVienHDTT";

OleDbDataAdapter dbAdapt = new OleDbDataAdapter(str, dbConn);

DataSet dbSet = new DataSet(); dbAdapt.Fill(dbSet);

dbConn.Close();

dgvTTGV.DataSource = dbSet.Tables[0]; }

//câu lệnh hiển thị thông tin về giảng viên và lấy dữ liệu

vào cbTenBM

private void frmGiangVien_Load(object sender, EventArgs e) {

HienThi(); dbConn.Open();

DataSet dbSet = new DataSet();

string str = "Select MaBM, TenBM From BoMon";

OleDbDataAdapter dbAdpt = new OleDbDataAdapter(str, dbConn); dbAdpt.Fill(dbSet); dbConn.Close(); cbTenBM.DataSource = dbSet.Tables[0]; cbTenBM.DisplayMember = "TenBM"; }

Một phần của tài liệu Luận văn quản lý sinh viên thực tập (Trang 45 - 52)

Tải bản đầy đủ (PDF)

(75 trang)