Traffic Count

Lập trình với cơ sở dữ liệu sử dụng entity framework

I. MỤC TIÊU

- Hướng dẫn sinh viên làm quen với việc xây dựng ứng dụng Windows Application có kết nối với CSDL SQL Server bằng Entity FrameWork của .NET.

 - Sử dụng trong Entity FrameWork với hướng tiếp cận Code First (From Database) đã có CSDL

 - Thiết kế các Form nhập liệu cho các bảng trong cơ sở dữ liệu (hiện thị, thêm, xóa, sửa)

II. BÀI TẬP

Sử dụng SQL Server tạo cơ sở dữ liệu “QuanLySinhVien” đơn giản với 2 bảng: Sinh viên và Khoa như sau

Student (StudentID, FullName, AverageScore, FacultyID)

Faculty(FacultyID, FacultyName)

Tạo mối quan hệ 2 bảng như sau:

Nhập liệu sẵn vào cơ sở dữ liệu một số dòng

Bài Tập 1 Sử dụng Entity FrameWork với mô hình Code First để kết nối CSDL

 Viết chương trình quản lý sinh viên có giao diện tương tự sau đây

Yêu Cầu Xử Lý

1.1 Sự kiện Form_load:

 - Hiển thị danh sách sinh viên hiện có trong CSDL (Lấy từ bảng sinh viên)

 - ComboBox Khoa lấy từ bảng Faculty và hiển thị tên khoa

1.2 Khi nhấn vào nút “Thêm” Hoặc “Sửa”

 - Kiểm tra các thông tin bắt buộc phải nhập liệu cho sinh viên như mã sinh viên, tên, và điểm trung bình. Nếu để trống sẽ xuất hiện thông báo lỗi “Vui lòng nhập đầy đủ thông tin!”

 - Kiểm tra mã số sinh viên phải có 10 ký tự. Nếu không sẽ xuất thông báo “Mã số sinh viên phải có 10 ký tự!”

 - Nếu trường hợp nhấn vào nút “Thêm” thì Thêm mới dữ liệu sinh viên vừa nhập vào CSDL, Load lại DataGridView, và thông báo “Thêm mới dữ liệu thành công!”.

 - Nếu trường hợp nhấn vào nút “Sửa”. Nếu mã sinh viên đã tồn tại thì Cập nhật dữ liệu sinh viên vào CSDL, và thông báo “Cập nhật dữ liệu thành công!”. Nếu mã sinh viên đó không tồn tại thì xuất thông báo “Không tìm thấy MSSV cần sửa!”

 - Reset lại dữ liệu về giá trị ban đầu sau khi thêm/ sửa thành công

1.3 Khi nhấn vào nút “Xóa”

 - Kiểm tra nếu MSSV cần xóa không tồn tại trong CSDL thì thông báo lỗi “Không tìm thấy MSSV cần xóa!”.

 - Ngược lại thì xuất hiện cảnh báo YES/NO. Nhấn YES sẽ thực hiện xóa dòng dữ liệu sinh viên trong DataGridView và thông báo “Xóa sinh viên thành công!”.

 - Reset lại dữ liệu về giá trị ban đầu sau khi xóa thành công

1.4 Viết code cho sự kiện ở DataGridView, người dùng chọn 1 dòng thì thể hiện ngược lại thông tin của các sinh viên đã chọn ở phần nhập liệu (bên trái).

Hướng Dẫn

Bước 1: Entity FrameWork sinh ra các class chúng ta nên tạo trong 1 thư mục (Models) để dễ dàng quản lý.

Click chuột phải vào Models chọn New Item. Chọn Loại Data/ ADO.NET Entity Data Model

Đặt tên context là “StudentContextDB” (mặc định ban đầu là Model1). Và chọn Add

Sau khi chọn Add có 4 hướng loại Entity model để kết nối với cơ sở dữ liệu

 - Database First

 - Model First

 - Code First với hướng tiếp cận tạo ra cơ sở dữ liệu

 - Code First với hướng tiếp cận đã có sẵn cơ sở dữ liệu

Ta chọn loại model là “Code first from database”. Chọn Next

Chọn New Connection để khởi tạo đường dẫn kết nối với database.

Chọn đúng tên server Name (trên từng máy có thể khác nhau - sinh viên có thể re-connect lại database để xem đúng tên Server Name. Ở ví dụ đây là trên local máy cá nhân)

Copy Server name dán vào mục Server name trong Connection Properties.

Các bạn lưu ý tích chọn vào mục: Trust Server Certificate

Cuối cùng, tại Select or enter database name – Chọn đúng database mà bạn đã khởi tạo.

Chọn Next để tiếp tục tạo. Connect String sẽ được lưu ở file App.Config

Sau đó chọn các bảng muốn tạo object (ở đây chọn 2 bảng từ CSDL)

Sau khi Finish, Entity FrameWork đã tạo các class tương ứng như trong cơ sở dữ liệu

Một số thông tin cần lưu ý:

- App.Config: Sẽ lưu trữ connection String và tên của Context sử dụng

- StudentContextDB: Lớp chứa tập hợp DataSet cho các table được chọn.

- VS.Net tự động sinh ra các file cs tương ứng map với CSDL. Sinh viên kiểm tra từng file (Student, Faculty) để hiểu cách mapping tương ứng với CSDL.

Cách Sử dụng Entity để thao tác với cơ sở dữ liệu như: Lấy tất cả, thêm, xóa, sửa với CSDL (Sinh viên đọc kỹ và thử để thực hiện bài tập)

Thầy Dương Quang Duy – Giảng viên Khoa Công nghệ thông tin – Điện tử