LỚP DATA ACCESS VÀ BUSINESS LOGIC

Một phần của tài liệu Quản lý cửa hàng băng đĩa (Trang 31 - 37)

Chương trình quản lý cửa hàng băng đĩa phim được viết theo mô hình 3 lớp nên 2 lớp đầu tiên là Data Access và Bussiness Logic chính là hai lớp nền tảng phục vụ cho lớp thứ 3 là Presension giao tiếp với người dùng. Mọi giao tiếp với cơ sở dữ liệu đều được thực hiện trên 2 lớp này. Để hiểu rõ hơn, ta lần lượt tìm hiểu cấu tạo và chức năng của hai lớp Data Access và Bussiness Logic.

4.1. Data Access Layer

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.SqlClient; using System.Windows.Forms; using DemoCHBD.DataAccess; namespace DemoCHBD.DataAccess { class ConnectData {

private SqlConnection conn; private SqlDataAdapter dataAp; private DataTable dataTable;

//Tạo hàm khởi tạo constructor để gọi kết nối khi new lớp DataConnect public ConnectData()

{

Connect(); }

//Hàm kết nối. Hàm này có tác dụng nhận chuỗi kết nối, ta cần gọi kết nối Server qua menu tools/ Connect Database… để lấy dòng kết nối, đưa vào câu lệnh kết nối trong nó.

public void Connect() {

string strConn = @"Data Source=LINH\SQLEXPRESS;Initial Catalog=QLCHBD;Integrated Security=True";

try {

conn = new SqlConnection(strConn); conn.Open();

conn.Close(); }

catch (Exception ex) {

MessageBox.Show("Error!" + ex.Message); }

}

//Hàm lấy dữ liệu DataTable từ câu truy vấn truyền vào. Đây là lệnh trả về 1 bảng, lúc này hàm sẽ lọc dữ liệu từ database ra 1 bảng, rồi gán giá trị của bảng đó cho hàm.

public DataTable GetDataTable(string sql) {

//Tạo dataAdapter, thực hiện câu lệnh query dataAp = new SqlDataAdapter(sql, conn); //Đổ dữ liệu vào DataTable

dataTable = new DataTable(); dataAp.Fill(dataTable);

}

//Hàm thực hiện các câu truy vấn INSERT, UPDATE, DELETE. Lệnh thực hiện 1 hành động, không trả về một bảng, mọi thao tác thêm, sửa, xoá dữ liệu trên database sẽ thực hiện trên hàm này.

public bool ExecuteQuery(string sql) { int numRecordsEffect = 0; try { if (conn.State == ConnectionState.Closed) conn.Open();

SqlCommand cmd = new SqlCommand(sql,conn); numRecordsEffect = cmd.ExecuteNonQuery(); if (conn.State == ConnectionState.Open)

conn.Close(); }

catch (Exception ex) { MessageBox.Show("Error!" + ex.Message); } if (numRecordsEffect > 0) return true; return false; } } } 4.2. Bussiness Logic

4.2.1. Class LoaiBUS.cs

Class LoaiBUS.cs gồm các thuộc tính sau:

Thuộc tính Tác dụng

LayDSLoai ( ) Lấy danh sách loại CD.

KiemTraTRuocKhiLuuLoaiCD (Loai lcd) Kiểm tra trước khi lưu loại CD. ThemLoaiCD (LoaiCD lcd) Thêm loại CD mới.

SuaLoai (LoaiCD lcd) Sửa loại CD trong danh sách. XoaLoai (string maloai) Xóa loại CD trong danh sách. TimLoai (string dk) Tìm loại CD trong danh sách. CheckExits (string maloai) Kiểm tra sự tồn tại của MA_LOAI

trong cơ sở dữ liệu.

Khi MA_LOAI này tồn tại trong CSDL => đang sửa.

Ngược lại => thêm.

Bảng 4.1. Các thuộc tính của class LoaiCDBUS.cs 4.2.2. Class DSDiaBUS.cs

Class DSDiaBUS.cs gồm các thuộc tính:

Thuộc tính Tác dụng

Laydanhsachdia ( ) Lấy danh sách đĩa CD.

KiemTraTruocKhiLuu (DSDia cd) Kiểm tra trước khi lưu đĩa CD.

ThemCD (DSDia cd) Thêm một đĩa CD mới vào danh sách đĩa.

SuaCD (DSDia cd) Sửa đĩa CD có trong danh sách đĩa. XoaCD (string macd) Xóa đĩa CD trong danh sách đĩa. TimCD (string dk) Tìm đĩa CD trong danh sách đĩa. CheckExits (string macd) Kiểm tra sự tồn tại của MA_CD trong

cơ sở dữ liệu.

Khi MA_CD này tồn tại trong CSDL => đang sửa.

Ngược lại => thêm.

Bảng 4.2. Các thuộc tính của class DSDiaBUS.cs 4.2.3. Class DSKhachBUS.cs

Class DSKhachBUS.cs gồm các thuộc tính:

Thuộc tính Tác dụng

LaydanhsachKH ( ) Lấy danh sách khách hàng.

KiemTraTruocKhiLuuDSKhach (…) Kiểm tra trước khi lưu danh sách khách hàng.

ThemKH (DSKhach dsk) Thêm một khách hàng mới.

SuaKH (DSKhach dsk) Sửa khách hàng đã có trong danh sách.

XoaKH (string makh) Xóa một khách hàng.

TimKH (string dk) Tìm một khách hàng.

CheckExits (string makh) Kiểm tra sự tồn tại của MA_KH trong cơ sở dữ liệu.

Khi MA_KH này tồn tại trong CSDL => đang sửa.

Ngược lại => thêm.

nextID ( ) Hàm lấy mã kế tiếp.

Bảng 4.3. Các thuộc tính của Class DSKhachBUS.cs 4.2.4. Class HDBan.cs

Class HDBan.cs gồm các thuộc tính:

Thuộc tính Tác dụng

LaydanhsachHDban ( ) Lấy danh sách hóa đơn bán. KiemTraTruocKHiLuuHDBan (HDBan hdb) Kiểm tra trước khi lưu hóa đơn

bán.

ThemHDban (HDBan hdb) Thêm một hóa đơn mới.

SuaHDB (HDBan hdb) Sửa một hóa đơn trong danh sách.

XoaHDBan ( string mahdb)

TimCD (string dk) Sửa một hóa đơn trong danh

MA_BAN trong cơ sở dữ liệu. Khi MA_BAN này tồn tại trong CSDL => đang sửa.

Ngược lại => thêm.

nextID ( ) Hàm lấy mã kế tiếp.

SoLuongCD (string dk) Số lượng đĩa CD bán.

GiaCD (string dk) Giá CD bán.

UpdateSoLuong (string macd, int sl) Cập nhập số lượng đĩa CD.

Bảng 4.4. Các thuộc tính của Clas HDBan.cs 4.2.5. Class HDThue.cs

Class HDThue.cs gồm các thuộc tính:

Thuộc tính Tác dụng

LaydanhsachHDthue ( ) Lấy danh sách háo

KiemTraTruocKhiLuuHDthue (HDThue hdt) Kiểm tra trước khi lưu danh sách hóa đơn thuê.

ThemHDthue (HDThue hdt) Thêm một hóa đơn thuê mới. SuaHDthue (HDThue hdt) Sửa một hóa đơn thuê.

XoaHDthue (string mahdt) Xóa một hóa đơn thuê.

TimCD (string dk) Tìm CD.

CheckExits (string mahdt) Kiểm tra sự tồn tại của

MA_THUE trong cơ sở dữ liệu. Khi MA_THUE này tồn tại trong CSDL => đang sửa. Ngược lại => thêm.

NextID ( ) Hàm lấy mã kế tiếp.

HienThiHDthue (string dk) Hiển thị hóa đơn thuê.

GiaCD (string dk) Giá CD khi thuê.

SoLuongCD (string dk) Số lượng CD thuê.

UpdateTraCD (string macd, int sl) Cập nhập số lượng CD đã trả. UpdateSoLuongThue (string macd, int sl) Cập nhật số lượng CD cho thuê.

4.2.6. Class LOGIN.cs

Class LOGIN.cs gồm các thuộc tính:

Thuộc tính Tác dụng

Hienthitaikhoan ( ) Hiển thị toàn bộ tài khoản dùng để đăng nhập

InsertTaiKhoan(string tk, string mk) Đăng ký tài khoản Update(string tk, string mk) Đổi mật khẩu

Kiemtratk (string tk) Kiểm tra xem tài khoản đăng nhập đã tồn tại hay chưa

Delete (string tk) Xóa tài khoản người dùng.

Bảng 4.6. Các thuộc tính của class LOGIN.cs

Chương 5

Một phần của tài liệu Quản lý cửa hàng băng đĩa (Trang 31 - 37)

w