1.Thiết kế CSDL
Sử dụng lại cơ sở dữ liệu ở phần 1 (HOCSINH.MDB):
2.Thiết kế giao diện
Tạo project C# Window Application mới với tên project là QLHS
Thiết kế form frmHocSinh.cs:
Tạo kết nối cơ sở dữ liệu bằng dòng lệnh
-
Nhắc lại: Để thao tác trên cơ sở dữ liệu sử dụng ADO.NET ta cần có các đối tượng sau:
-
Connection để kết nối với cơ sở dữ liệu.gồm OleDbConnection và SqlConnection.
-
Command để thực thi các câu lệnh truy vấn, thực thi các store procedure... bao gồm OleDbCommand và SqlCommand
-
DataAdapter thực hiện ánh xạ dữ liệu vào DataSet thông qua connection đã có bao gồm OleDbDataAdapter và SqlDataAdapter.
-
DataSet chứa dữ liệu thu được hoặc xử lý lấy từ cơ sở dữ liệu. DataSet là tập hợp gồm các thành phần DataTable (tương ứng với từng View trong cơ sở dữ liệu), DataColumn (tương ứng với Field trong CSDL) và DataRow (tương ứng với record trong CSDL).
-
Để kết nối với CSDL Access, ta sử dụng OleDb. Ta khai báo sử dụng namespace như sau:
using System.Data;
using System.Data.OleDb;
-
Ta khai báo các biến cần sử dụng để xử lý CSDL.
private OleDbConnection connection;
private OleDbDataAdapter adapter;
private DataSet dataSet;
private OleDbCommand command;
Hàm connect cơ sở dữ liệu
- Ta viết hàm connect có nhiệm vụ kết nối cơ sở dữ liệu như sau:
private void connect(string file)
{
string connnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + file;
connection = new OleDbConnection(connnectionString);
}
- Trong sự kiện form load, ta gọi hàm connect để khởi tạo connection
private void frmThongTinHS_Load(object sender, System.EventArgs e)
{
connect("C:/Users/HocSinh.mdb");
}
Hàm lấy danh sách lớp để kết với combobox
private DataTable getDSLop()
{
adapter = new OleDbDataAdapter("select * from LOP", connection);
dataSet = new DataSet();
adapter.Fill(dataSet);
return dataSet.Tables[0];
}
- Trong sự kiện formLoad, ta gọi hàm lấy danh sách lớp và kết vào combobox
private void frmThongTinHS_Load(object sender, System.EventArgs e)
{
connect("D:/HocSinh.mdb");
cmbLop.DataSource = getDSLop();
cmbLop.DisplayMember = "TenLop"; // Column sẽ được hiển thị
cmbLop.ValueMember = "MaLop"; // Column sẽ được giữ giá trị
}
Lấy thông tin từ form vào các biến
private string maHS, tenHS, diachi, malop;
private double dtb;
private DateTime ngaysinh;
private void getData()
{
maHS = txtMaHS.Text;
tenHS = txtTenHS.Text;
ngaysinh = dtpNgaySinh.Value;
diachi = txtDiaChi.Text;
malop = (string)cmbLop.SelectedValue;
dtb = Double.Parse(txtDiemTB.Text);
}
Hàm thêm dữ liệu vào CSDL
private void insert()
{
connection.Open();
string insertCommand = "INSERT INTO HOCSINH VALUES('" +
maHS + "', '" +
tenHS + "', '" +
ngaysinh.ToShortDateString() + "', '" +
diachi + "', " +
dtb + ", '" +
malop + "')";
command = new OleDbCommand(insertCommand, connection);
command.ExecuteNonQuery();
connection.Close();
}
- Trong sự kiện Click của btnLuu ta thực hiện lưu thông tin vào CSDL
private void btnLuu_Click(object sender, System.EventArgs e)
{
getData();
insert();
MessageBox.Show("Cap nhat thanh cong");
}
Hàm xóa dữ liệu khỏi CSDL
- Tương tự ta có hàm xóa dữ liệu
private void delete()
{
connection.Open();
string deleteCommand = "DELETE FROM HOCSINH WHERE MaHS = '" +
maHS + "'";
command = new OleDbCommand(deleteCommand, connection);
command.ExecuteNonQuery();
connection.Close();
}
- Trong sự kiện Click của btnLuu ta thực hiện lưu thông tin vào CSDL
private void btnXoa_Click(object sender, System.EventArgs e)
{
getData();
delete();
MessageBox.Show("Xoa du lieu thanh cong");
}
Bài tập:
Thực hiện chương trình Quản Lý Học Sinh với Các chức năng sau
-
Quản lý lớp học
-
Thêm lớp học
-
Sửa thông tin lớp học
-
Xoá thông tin lớp học
-
Xem danh sách lớp học
-
Quản lý học sinh
-
Thêm thông tin học sinh
-
Xoá học sinh
-
Sửa học sinh