syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
Mô hình 3 lớp trong C#
1. I.
MÔ HÌNH 3 LỚP TRONG C#
Thành phần
Trong đó:
DBAccess: file thao tác với dữ liệu, thực hiện các hành động update-insert-delete-select, bao gồm các phương
thức và biến hay sử dụng:
string constr = "Data Source=NTT-PCCENTRALWALL;Initial Catalog=DEMO3LOP;Persist Security Info=True;User
ID=sa;Password=*******"; Chuỗi kết nối
public DataSet LayDuLieu(string sql): phương thức thực hiện các câu lệnh select đơn và có tham số đầu vào(có
điều kiện ở where: vd where lop =’10DTH01’). Với tham số đầu vào kiểu string, đây chính là câu lệnh SQL.
Phương thức này sẽ trả về kiểu dữ liệu DataSet là nơi chứa toàn bộ kết quả sau khi thực thi xong câu lệnh SQL.
public int Update(string procName, string[] name, object[] value, int Nparameter): Phương thức dùng để thực thi
các hành động Insert – Update –Delete, tham số đầu vào bao gồm: 1 tên procedure(string), 1 mảng chứa các
biến(tương tự như khai báo biến khi tạo lập procedure), 1 mảng kiểu object chứa các tham số truyền vào của
procedure và 1 biến Nparameter dùng để khai báo số lượng tham số sẽ truyền vào procdure.
Phương thức này sẽ trả về kết quả 1 hoặc là 0, tương đương với việc thao tác insert – update – delete với kết quả
SQL thông báo là (1 row(s) affected) hay (0 row(s) affected), tức là thực hiện thành công (trả về 1) hay thất bại(trả
về 0).
SinhVienEntity: file chứa toàn bộ thuộc tính của table cần thao tác, trong từng thuộc tính sẽ có thêm 2 phương
thức get và set để gán và truyền dữ liệu.
frmSinhVien: giao diện chính của form.
SinhVienDAL: file chứa các phương thức thao tác với dữ liệu thông qua file DBAcess.
SinhVienBLL: file chứa các phương thức nhận các yêu cầu(tham số) từ lớp giao diện đưa vào lớp DAL và sau
khi DAL thao tác với file DBAccess thì sẽ trả lời lại những yêu cầu từ lớp giao diện.
2. DEMO load toàn bộ dữ liệu lên dataGridView
1
3
SinhVienBLL data = new SinhVienBLL();
public DataSet Load_Sinh_Vien()
{. . . }
DBAccess data = new DBAccess();
4
sql= "select *from SINHVIEN"
public DataSet LayDuLieu(string sql)
{. . .}
SinhVienDAL data = new SinhVienDAL();
public DataSet Load_Sinh_Vien()
{. . . }
2
GIAO DIỆN
BLL
DAL
DBAccess
SQL
8
6
return data.LayDuLieu(sql);
data.Load_Sinh_Vien().Tables[0]
5
Return ds;
7
return data.Load_Sinh_Vien();
1. Lớp giao diện khởi tạo biến SinhVienBLL, phương thức này gọi hàm Load_Sinh_Vien của BLL
2. Lớp BLL khởi tạo biến DAL, phương thức này gọi hàm Load_Sinh_Vien của DAL
3. Lớp DAL khởi tạo biến DBAccess, phương thức này gọi hàm LayDuLieu
4. Thực thi phương thức LayDuLieu với SQL với tham số đầu vào là 1 câu select
5. SQL thực thi kết quả trả về DBAccess
6. Trả DataSet về lớp DAL sau khi thực thi với câu lệnh sql trên
7. Trả DataSet về lớp BLL
8. Hiển thị kết quả trên datagridview.
3. Tìm kiếm
1
SinhVienBLL data = new SinhVienBLL();
public DataSet Tim_Sinh_Vien()
{
SinhVienEntity sinhvien = new
SinhVienEntity();
sinhvien.Ten = txtTimKiem.Text;
}
string sql = "select * from SINHVIEN where
Ten like N'%"+sinhvien.Ten+"%'";
DBAccess data = new DBAccess();
3
4
SinhVienDAL data = new SinhVienDAL();
public DataSet Tim_Sinh_Vien(SinhVienEntity sinhvien)
{. . . }
public DataSet LayDuLieu(string sql)
{. . .}
2
GIAO DIỆN
BLL
DAL
DBAccess
SQL
8
6
data.Tim_Sinh_Vien(sinhvien).Tables[0]
return data.LayDuLieu(sql);
5
Return ds;
7
return data.Tim_Sinh_Vien(sinhvien);
1. Lớp giao diện khởi tạo biến SinhVienBLL, phương thức này gọi hàm Tim_Sinh_Vien của BLL, Trong sự kiện click
của button ta truyền tham số tên sinh viên từ textbox vào lớp SinhVienEntity.
2. Lớp BLL khởi tạo biến DAL, phương thức này gọi hàm Tim_Sinh_Vien của DAL, tạo thêm lớp SinhVieEntity nhận
tham số từ lớp giao diện
3. Lớp DAL khởi tạo biến DBAccess, phương thức này gọi hàm LayDuLieu, , tạo thêm lớp SinhVieEntity nhận tham
số từ lớp BLL
4. Thực thi phương thức LayDuLieu với SQL với tham số đầu vào là 1 câu select
5. SQL thực thi kết quả trả về DBAccess
4. 6. Trả DataSet về lớp DAL sau khi thực thi với câu lệnh sql trên
7. Trả DataSet về lớp BLL
8. Hiển thị kết quả trên datagridview.
Thêm:
Tiền hành tạo 1 procedure Thêm sinh viên
Thêm 1 phương thức ThemSinhVien trong lớp DAL
*** Lưu ý: thứ tự - tên các biến trong khai báo trong lớp DAL phải giống hoàn toàn thứ tự - tên các biến
trong procedure
5. 1
SinhVienBLL data = new SinhVienBLL();
public DataSet Them_Sinh_Vien()
{
SinhVienEntity sinhvien = new
SinhVienEntity();
sinhvien.Ten = txtTen.Text;
sinhvien.Mssv = Convert.ToInt32(txtMSSV.Text);
sinhvien.Khoa = txtKhoa.Text;
sinhvien.Lop = txtLop.Text;
sinhvien.Phai = cbbPhai.SelectedIndex;
}
3
int thamso = 5;
string[] bien = new string[thamso];
object[] giatri = new object[thamso];
bien[0] = "@MSSV"; giatri[0] = sinhvien.Mssv;
bien[1] = "@Ten"; giatri[1] = sinhvien.Ten;
bien[2] = "@Lop"; giatri[2] = sinhvien.Lop;
bien[3] = "@Khoa"; giatri[3] = sinhvien.Khoa;
bien[4] = "@Phai"; giatri[4] = sinhvien.Phai;
DBAccess data = new DBAccess();
4
Update("ThemSV", bien, giatri, thamso);
public int Update(string procName, string[]
name, object[] value, int Nparameter)
{. . .}
SinhVienDAL data = new SinhVienDAL();
public DataSet Them_Sinh_Vien(SinhVienEntity sinhvien)
{. . . }
2
GIAO DIỆN
BLL
DAL
DBAccess
SQL
8
6
data.Them_Sinh_Vien(sinhvien).Tables[0]
7
return data.Update("ThemSV", bien,
giatri, thamso);
5
return cmd.ExecuteNonQuery();//trả về
giá trị >0 (thành công)hoặc 0 (thất
bại)
return data.them_Sinh_Vien(sinhvien);
9. Lớp giao diện khởi tạo biến SinhVienBLL, phương thức này gọi hàm Them_Sinh_Vien của BLL, Trong sự kiện click
của button ta truyền tham số tên, lớp, khoa, MSSV, phái của sinh viên từ các textbox, combobox vào lớp
SinhVienEntity.
10. Lớp BLL khởi tạo biến DAL, phương thức này gọi hàm Them_Sinh_Vien của DAL, tạo thêm lớp SinhVieEntity nhận
tham số từ lớp giao diện
6. 11. Lớp DAL khởi tạo biến DBAccess, phương thức này gọi hàm Update, , tạo thêm lớp SinhVieEntity nhận tham số từ
lớp BLL
12. Thực thi phương thức LayDuLieu với SQL với tham số đầu vào là 1 tên procedure, các tham số, giá trị tham số và
số lượng tham số.
13. SQL thực thi kết quả trả về DBAccess
14. Trả kết quả(kiểu int) về lớp DAL sau khi thực thi với câu lệnh sql trên
15. Trả kết quả(kiểu int) về lớp BLL
16. Thông báo thành công hay thất bại nếu thành công cập nhật lại datagridview.
Sửa:
Tiền hành tạo 1 procedure Sửa sinh viên
Thêm 1 phương thức SuaSinhVien trong lớp DAL
*** Lưu ý: thứ tự - tên các biến trong khai báo trong lớp DAL phải giống hoàn toàn thứ tự - tên các biến
trong procedure
Thao tác sửa tương tự như ‘thêm’
7. Xóa
Procedure XoaSinhVien
Thêm 1 phương thức XoaSinhVien trong lớp DAL
*** Lưu ý: thứ tự - tên các biến trong khai báo trong lớp DAL phải giống hoàn toàn thứ tự - tên các biến
trong procedure
Thao tác Xóa tương tự như 2 thao tác trên.