ĀY BAN NHÂN DÂN THÀNH PHà Hâ CHÍ MINH TR¯àNG CAO ĐÂNG BÁCH KHOA NAM SÀI GÒN GIÁO TRÌNH MÔN HàC/MÔ ĐUN : L¾P TRÌNH C¡ SÞ DĀ LIÞU NGÀNH/NGHÀ : TIN HàC ĀNG DĀNG TRÌNH Đà : CAO ĐÀNG Ban hành kèm theo Quyết định số:459/QĐ-NSG, ngày 31 tháng 08 năm 2022 của Hiệu trưởng Trường Cao Đẳng Bách Khoa Nam Sài Gòn Thành phá Hß Chí Minh, năm 2022 TUYÊN Bà BÀN QUYÀN Tài liệu này thuộc loại sách giáo trình nên các nguãn thông tin có thể được phép dùng nguyên bản hoặc trích dùng cho các mÿc đích về đào tạo và tham khảo. Mọi mÿc đích khác mang tính lệch lạc hoặc sử dÿng với mÿc đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm. MĀC LĀC BÀI 1: TàNG QUAN VÀ ADO. Gißi thißu ADO.
Ki¿n trúc ADO. K¿t nái MS SQL Server bÁng SQL Server Data Provider. K¿t nái Oracle bÁng Oracle Data Provider. K¿t nái MS Access bÁng Access Data Provider.
7 BÀI 2: CÁC ĐàI T¯þNG TRONG MÔ HÌNH K¾T NàI ADO. Đái t°ÿng DataAdapter và DataSet. 25 BÀI 3: MÔ HÌNH MVC (MODEL – VIEW – CONTROLLER). Gißi thißu mô hình MVC.
Ki¿n trúc mô hình MVC. 44 BÀI 4: CRYSTAL REPORT VÀ LINKQ. Gißi thißu Crystal Report. Gißi thißu LINQ.
Ki¿n trúc LINQ. Sÿ dāng LINQ vßi Object. Sÿ dāng LINQ vßi ADO. 60 BÀI 5: ĐÓNG GÓI ĀNG DĀNG.
Cách tÁi th° vißn đóng gói. Cách thāc đóng gói. 62 BÀI 1: TàNG QUAN VÀ ADO.NET Māc tiêu: Trình bày được kiến trúc ADO.NET Sử dÿng kiến trúc ADO.NET kết nái được đến Hệ quản trị cơ sở dÿ liệu 1. Gißi thißu ADO.NET (ActiveX Data Objects.NET) là một thành phần trong .NET FRAMEWORK đảm nhÁn vai trò thao tác với CSDL.
Cung cấp các lớp đái tượng và hàm thư viện phÿc vÿ kết nái và xử lý dÿ liệu.NET là cầu nái giÿa ăng dÿng và CSDL.NET hỗ trợ việc kết nái và truy cÁp CSDL đái với nhiều hệ quản trị CSDL khác nhau như: SQL Server, Oracle, Access, … Hình 1.1 – Mô hình ADO.NET hoạt động theo 2 kiến trúc (kết nái và ngắt kết nái). o Mô hình ngắt kết nái: Cho phép lấy cả một cấu trúc dÿ liệu phăc tạp từ CSDL sau đó ngắt kết nái với CSDL và thāc hiện xử lý dÿ liệu. o Mô hình kết nái: Luôn phải duy trì kết nái trong suát quá trình xử lý dÿ liệu. - Các đặc trưng cāa ADO.
o Hỗ trợ lÁp trình: Cung cấp các lớp thao tác với CSDL giúp lÁp trình nhanh hơn và giảm lỗi; Cung cấp các công cÿ để thao tác với CSDL ngay trên phần Disigner giúp thao tác với CSDL dễ dàng hơn. o Khả năng mở rộng: Sử dÿng kiến trúc ngắt kết nái giúp giảm tải cho server, hỗ trợ nhiều người sử dÿng truy cÁp CSDL đãng thời tát hơn. o Khả năng tích hợp: ADO.NET có thể gửi dÿ liệu cho bất că loại ăng dÿng nào; o Hỗ trợ XML. Ki¿n trúc ADO.NET Kiến trúc cāa ADO.NET được mô tả như hình dưới, bao gãm hai thành phần chính: Thành phần truy cÁp nguãn dÿ liệu và thành phần lưu trÿ xử lý dÿ liệu.2 – Kiến trúc tổng quan của ADO.NET Thành phần thă nhất:.NET Framework Data Provider được thiết kế để thāc hiện các thao tác kết nái, gửi các lệnh xử lý đến CSDL (thành phần này còn được gọi với một tên khác là lớp kết nái – Connectectivity Layer).NET, có 4 đái tượng chính với các chăc năng cơ bản như sau: o Connection: giúp thāc hiện kết nái đến các CSDL o Command: giúp truy cÁp đến CSDL và thāc hiện các phát biểu SQL hay thā tÿc lưu trÿ sẵn (stored procedure) cāa CSDL o DataReader: dùng để đọc nhanh nguãn dÿ liệu, chỉ được duyệt tuần tā theo chiều tiến cāa các record DataAdapter: dùng để chuyển dÿ liệu truy vấn được cho các đái tượng lưu trÿ và xử lý (DataSet, DataTable).
DataAdapter chā yếu thāc hiện các thao tác như SELECT, INSERT, UPDATE, DELETE 1. K¿t nái MS SQL Server bÁng SQL Server Data Provider Các bước tạo kết nái tới CSDL SQL Server. Bước 1: Khai báo đái tượng SqlConnection SqlConnection conn = null; Bước 2: Tạo chuỗi kết nái tới CSDL SQL Server string connectionString = "Data Source=Server; Initial Catalog=QuanLyBanHang; UID=sa; PWD=123"; Bước 3: Tạo đái tượng Connection conn = new SqlConnection(connectionString); Bước 4: Mở kết nái qua đái tượng Connection conn. K¿t nái Oracle bÁng Oracle Data Provider Các bước tạo kết nái tới CSDL Oracle.
Bước 1: Khai báo đái tượng OracleConnection OralceConnection conn = null; Bước 2: Tạo chuỗi kết nái tới CSDL Oracle string connectionString = "Data Source=Server; Initial Catalog=QuanLyBanHang; UID=sa; PassWord=''"; Bước 3: Tạo đái tượng Connection conn = new OracleConnection(connectionString); Bước 4: Mở kết nái qua đái tượng Connection conn. K¿t nái MS Access bÁng Access Data Provider Các bước tạo kết nái tới CSDL Oracle. Bước 1: Khai báo đái tượng OracleConnection OralceConnection conn = null; Bước 2: Tạo chuỗi kết nái tới CSDL Access string connectionString = "Data Source=Server; Initial Catalog=QuanLyBanHang; UID=sa; PassWord=''"; Bước 3: Tạo đái tượng Connection conn = new OracleConnection(connectionString); Bước 4: Mở kết nái qua đái tượng Connection conn.Open(); BÀI TÀP THĀC HÀNH 1. Xây dāng lược đã cơ sở dÿ liệu Quản lý sinh viên Sinhvien (masv, hosv, tensv, ngaysinh, gioitinh, điachi, email, sdt, quequan, malop, tinhtrang, hinhanh) Giangvien (magv, hoten, makhoa, sdt) Monhoc (mamh, tenmh, sotiet, sotinchi, makhoa, socotdiemKT) Khoa (makhoa, tenkhoa,) Lop (malop, tenlop, makhoa, khoahoc) Phanmon (mapm, namhoc, hocky, malop, magv, mamh) Bangdiem(mapm, masv, hs11, hs12, hs21, hs22, TBKT, thi1, thi2, KTM1, KTM2) 2.
Thiết kế Cơ sở dÿ liệu trên phần mềm SQL Server và Microsoft Access create database QUANLYSINHVIEN Use QUANLYSINHVIEN ---khoa create table khoa( makhoa char(10) not null primary key, tenkhoa nvarchar(100) ) ---giangvien create table GIANGVIEN ( magv char (4)not null primary key, makhoa char (10), hotengv nvarchar (50), sdt varchar (15) ) alter table GIANGVIEN add constraint fk_giangvien_makhoa foreign key (makhoa) references khoa(makhoa) ---lop create table Lop( malop char(10) not null primary key, makhoa char(10), tenlop nvarchar(100), khoahoc varchar(10) not null ) alter table Lop add constraint fk_lop_makhoa foreign key (makhoa) references Khoa(makhoa) (Sinh viên tự thiết kế các table còn lại) 3. NhÁp dÿ liệu m¿u INSERT INTO Khoa (makhoa, tenkhoa) VALUES ('CNTT', N'Công nghệ thông tin'), ('KT', N'Kinh tế'), ('NN', N'Ngoại ngÿ') 4. Kết nái từ giao diện Windows Forms C# đến cơ sở dÿ liệu đã tạo trên SQL Server và Microsoft Access BÀI 2: CÁC ĐàI T¯þNG TRONG MÔ HÌNH K¾T NàI ADO.NET Māc tiêu: Trình bày được chăc năng cāa các đái tượng trong mô hình kết nái ADO.NET Sử dÿng các đái tượng trong ADO.NET để kết nái đến cơ sở dÿ liệu và thāc hiện các thao tác xử lý dÿ liệu 2. Giới thiệu đái tượng Connection Có nhiều lớp Connection trong ADO.NET – mỗi lớp tương ăng với một Data Provider – bao gãm SqlConnection, OracleConnection, OleDbConnection, OdbcConnection.
Mặc dù mỗi lớp có thể gãm nhÿng đặc tính riêng, nhưng các lớp này đều phải implement interface IdbConnection. Chăc năng đái tượng Connection: Tạo kết nái với CSDL. Thuộctính: ConnectionString: Thuộc tính chuỗi kết nái với CSDL (DataSource); Phương thăc: Open(): Phương thăc mở kết nái với CSDL; Close(): Phương thăc đóng kết nái.1 – Đái tượng Connection ❖ Quy trình k¿t nái đ¿n CSDL - Tạo đái tượng Connection và xác định chuỗi kết nái (Connection String) - Tạo đái tượng Command và xác định câu lệnh SQL - Mở đái tượng Connection (Open) - Thāc hiện câu lệnh SQL và xử lý kết quả (Execute) - Đóng đái tượng Connection (Close) 2. Khởi tạo đái tượng Đái t°ÿng SqlConnection Khai báo Namspace: Using System.SqlClient Cách 1: Khai báo và khởi tạo đái tượng kết nái Khai báo biến đái tượng kết nái: SqlConnection Conn; Khởi tạo biến đái tượng kết nái: Conn = new SqlConnection(); Cách 2: Vừa khai báo kết hợp khởi tạo biến đái tượng kết nái SqlConnection Conn = new SqlConnection(); Hoặc SqlConnection Conn = new SqlConnection(ConnStr); //ConnStr là biến lưu trÿ chuỗi kết nái Đái t°ÿng OracleConnection Khai báo Namspace: Using System.
OracleClient Khai báo biến đái tượng kết nái: OracleConnection Conn; Khởi tạo biến đái tượng kết nái: Conn = new OracleConnection(); Hoặc OracleConnection Conn = new OracleConnection(); OracleConnection Conn = new OracleConnection(ConnStr); Đái t°ÿng OleDbConnection Khai báo Namspace: Using System.OleDbClient Khai báo biến đái tượng kết nái: OleDbConnection Conn; Khởi tạo biến đái tượng kết nái: Conn = new OleDbConnection(); Hoặc OleDbConnection Conn = new OleDbConnection(); OleDbConnection Conn = new OleDbConnection(ConnStr); 2. Chuỗi kết nái cơ sở dÿ liệu Chuỗi kết nái cơ sở dÿ liệu (ConnectionString) xác định data source và các thông tin cần thiết để truy xuất data source, chẳng hạn như User ID và Password, … Ngoài nhÿng thông tin cơ bản này, Connection string còn có thể chăa các giá trị cho các trường dÿ liệu đặc trưng cho data provider. Ví dÿ, Connection string cho Ms Sql Server có thể chăa các giá trị để quy định Connection Timeout và Packet Size. Chußi k¿t nái c¢ sß dā lißu MS SQL Server Cách 1: @"Server=.\SQLEXPRESS;Database=QuanLyBanHang; Integrated Security=SSPI;" Cách 2: @"Server=.\SQLEXPRESS;Database= QuanLyBanHang; Trusted_Connection=True;= Cách 3: "Data Source=.\\SQLEXPRESS; Initial Catalog= QuanLyBanHang; Integrated Security=True;" Chußi k¿t nái c¢ sß dā lißu Oracle @"Server=.\ Oracle;Database=QuanLy BanHang; Integrated Security=SSPI;" @"Server=.\Oracle;Database= QuanLyBanHang; Trusted_Connection=True;= "Data Source=.\\Oracle; Initial Catalog= QuanLyBanHang; Integrated Security=True;" Chußi k¿t nái c¢ sß dā lißu Access - Chuỗi kết nái CSDL Access 97, 2000, 2002, 2003.0; Data Source=C:\\Database\\QuanLyBanHang.mdb; - Chuỗi kết nái CSDL Access 2007, 2010, 2013.0; Data Source=C:\\Database\\QuanLyBanHang.
Đóng và mở kết nái - Mở kết nái với CSDL bằng cách gọi phương thăc Open() cāa lớp Connection Conn.open(); hoặc Conn.open(ConnStr); - Đóng kết nái với CSDL bằng cách gọi phương thăc Close() cāa lớp Connection Conn. Connection Pooling - Pooling cho phép sử dÿng lại các connection để mang lại hiệu quả trong việc kết nái đến CSDL Mỗi Data Provider sẽ cài đặt connection pooling theo cách riêng Nếu kết nái thāc hiện đã có trong pool thì sẽ được sử dÿng lại Nếu kết nái thāc hiện chưa có trong pool thì sẽ được tạo mới - Hoạt động Connection Pooling cāa Data Provider for SQL Server Dāa trên thông tin cāa chuỗi kết nái, thuộc tính Pooling có giá trị là True hoặc False (mặc định là True) Nếu thuộc tính Pooling có giá trị là True thì có thể sử dÿng lại kết nái từ pool. Nếu thuộc tính Pooling có giá trị là False thì kết nái sẽ được tạo mới 2.1 Giới thiệu đái tượng Command Đái tượng Command trên .NET cho phép thi hành trāc tiếp nhÿng câu lệnh SQL, chẳng hạn như INSERT, SELECT, UPDATE và DELETE lên dÿ liệu nguãn để thêm, chọn, cÁp nhÁt và xóa dÿ liệu trên CSDL. Người dùng cũng có thể dùng đái tượng command để thi hành nhÿng stored procedure trong CSDL.
Đái tượng Command cho phép chọn kiểu tương tác mong muán thāc hiện với database. Ví dÿ, chúng ta có thể thāc hiện các lệnh select, insert, modify, và delete các dòng trong một table cāa database. Command là đái tượng dùng để thāc hiện các truy vấn SQL và các lệnh quản lý dÿ liệu trước khi gửi chúng đến đích. Command sử dÿng các Parameter cho phép gọi các thā tÿc nội tại (stored procedures) hoặc các truy vấn.