intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Giáo trình Lập trình cơ sở dữ liệu (Nghề: Tin học ứng dụng - Cao đẳng) - Trường Cao đẳng Bách khoa Nam Sài Gòn (2022)

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:69

8
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Giáo trình "Lập trình cơ sở dữ liệu (Nghề: Tin học ứng dụng - Cao đẳng)" được biên soạn nhằm giúp sinh viên 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; nắm được chức năng của các đối tượng trong mô hình kết nối ADO.NET; lập trình cơ sở dữ liệu với mô hình MVC;... Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Giáo trình Lập trình cơ sở dữ liệu (Nghề: Tin học ứng dụng - Cao đẳng) - Trường Cao đẳng Bách khoa Nam Sài Gòn (2022)

  1. Ủ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
  2. 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.
  3. MỤC LỤC BÀI 1: TỔNG QUAN VỀ ADO.NET ....................................................................................................... 4 1.1. Giới thiệu ADO.NET .................................................................................................................. 4 1.2. Kiến trúc ADO.NET ........................................................................................................................ 5 1.3. Kết nối MS SQL Server bằng SQL Server Data Provider ........................................................... 6 1.4. Kết nối Oracle bằng Oracle Data Provider ................................................................................... 7 1.5. 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.NET ............................................... 10 2.1. Đối tượng Connection .................................................................................................................... 10 2.2. Đối tượng Command ..................................................................................................................... 14 2.3. Đối tượng DataReader ................................................................................................................... 22 2.4. Đối tượng DataAdapter và DataSet.............................................................................................. 25 BÀI 3: MÔ HÌNH MVC (MODEL – VIEW – CONTROLLER) ......................................................... 31 3.1. Giới thiệu mô hình MVC ............................................................................................................... 31 3.2. Kiến trúc mô hình MVC................................................................................................................ 32 3.3. Lớp Models ..................................................................................................................................... 33 3.4. Lớp Controls................................................................................................................................... 37 3.5. Lớp Views ....................................................................................................................................... 44 BÀI 4: CRYSTAL REPORT VÀ LINKQ .............................................................................................. 46 4.1. Giới thiệu Crystal Report .............................................................................................................. 46 4.2. Giới thiệu LINQ ............................................................................................................................. 52 4.3. Kiến trúc LINQ .............................................................................................................................. 52 4.4. Sử dụng LINQ với Object ............................................................................................................. 57 4.5. Sử dụng LINQ với ADO.NET ....................................................................................................... 60 BÀI 5: ĐÓNG GÓI ỨNG DỤNG ............................................................................................................ 61 5.1. Cách tải thư viện đóng gói............................................................................................................. 61 5.2. Cách thức đóng gói ........................................................................................................................ 62
  4. 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.1. Giới thiệu ADO.NET 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. ADO.NET là cầu nối giữa ứng dụng và CSDL. ADO.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 - 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.
  5. 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.NET. 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. 1.2. 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. Hình 1.2 – Kiến trúc tổng quan của ADO.NET
  6. 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). Trong ADO.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.3. 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.Open();
  7. 1.4. 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.Open(); 1.5. 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);
  8. 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),
  9. 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
  10. 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.1. Đối tượng Connection 2.1.1. 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. Hình 2.1 – Đối tượng Connection
  11. ❖ 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.1.2. Khởi tạo đối tượng Đối tượng SqlConnection Khai báo Namspace: Using System.Data.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.Data. 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
  12. OracleConnection Conn = new OracleConnection(); OracleConnection Conn = new OracleConnection(ConnStr); Đối tượng OleDbConnection Khai báo Namspace: Using System.Data.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.1.3. 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
  13. @"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. Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\\Database\\QuanLyBanHang.mdb; - Chuỗi kết nối CSDL Access 2007, 2010, 2013. Provider= Microsoft.ACE.OLEDB.12.0; Data Source=C:\\Database\\QuanLyBanHang.accdb; 2.1.4. Đó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.close(); 2.1.5. Connection Pooling
  14. - 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.2. Đối tượng Command 2.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.. ❖ Thuộc tính:
  15. o Connection: Đối tượng Connection, xác định kết nối thực hiện lệnh; o CommandText: Câu lệnh sql cần thực hiện; o CommandType: Loại câu lệnh (Text, TableDirect, StoredProc); o CommandTimeout: Thiết lập/Lấy thời gian chờ thực hiện lệnh. Sau khi chờ 1 khoảng thời gian nếu vượt quá sẽ báo lỗi. o Parameters: Các tham số truyền vào cho đối tượng command. o Transaction: Thiết lập/lấy giao tác mà đối tượng Command thực thi. ❖ Phương thức o ExecuteReader: Thực thi câu lệnh CommandText của đối tượng Command và trả về kiểu DataReader. o ExecuteNonQuery: Thực thi câu lệnh CommandText của đối tượng Command, đây là dạng câu lệnh cập nhật cơ sở dữ liệu (xoá /sửa) nên chỉ trả về số dòng bị ảnh hưởng mà không trả về dòng dữ liệu nào. o ExecuteScalar: Thực thi câu truy vấn của đối tượng Command và chỉ trả về cột đầu tiên của dòng đầu tiên của kết quả. Các kết quả còn lại bị bỏ qua.. ❖ Các hàm khởi tạo đối tượng Command o New(): không có tham số nào. o New(cmdText as String): Trong đó cmdText là câu lệnh truyền vào cho đối tượng Command. o New(cmdText as String, connectin as SqlConnection): Trong đó cmdText như trên, connection là đối tượng kết nối truyền vào cho đối tượng Command.
  16. o New(cmdText as String, connection as SqlConnection, transaction as SqlTransaction): Trong đó cmdText, connnection như trên, Transaction: là giao tác truyền cho đối tượng Command. 2.2.2 Khởi tạo đối tượng Command - Khai báo và khởi tạo đối tượng Command. SqlCommand cmd; String SQL_Cmd=”Select * from SinhVien”; Cmd = new SqlCommand(SQL_Cmd, Conn); Hoặc: SqlCommand cmd = new SqlCommand(SQL_Cmd, Conn); - Khai báo và khởi tạo đối tượng Command. SqlCommand cmd; SqlCommand cmd = new(); Gán giá trị cho các thuộc tính của đối tượng Command cmd.Connection= Conn; cmd.CommandText=SQL_Cmd; Các thuộc tính của lớp Command
  17. Các thuộc tính Mô tả DesignTimeVisible Thuộc tính này dùng để cho biết liệu đối tượng Command có nên thực hiện lên trên một ô control Windows Form Designer hay không. Trị mặc định là False Parameters Thuộc tính này cho tìm lại collection (SqlParsmeter Collection) các thông số của thuộc tính CommandText Transaction Thuộc tính này được dùng để tìm lại hoặc đặt giao dịch mà command đang thi hành. Bạn phải để ý là đối tượng transaction cũng được kết nối về cùng một đối tượng connection như đối tượng command.
  18. UpdatedRowsource Thuộc tính này lấy hoặc đặt, để kết quả thi hành câu lệnh Command này sẽ áp dụng đối với đối tượng DataRow khi nó được sử dụng bởi hàm Update của DbDataAdapter. Thuộc tính này sẽ mang một trong những giá trị của enumeration 2.2.3 Thực hiện đối tượng Command Các bước thực hiện: Bước 1: Thực hiện kết nối CSDL. Bước 2: Khởi tạo đối tượng Command Bước 3: Thực thi Ví dụ: Sử dụng đối tượng Command để đếm số khách hàng. o Tạo đối tượng SqlConnection và thực hiện mở kết nối tới CSDL QuanLyBanHang. o Tạo đối tượng Command và sử dụng phương thức ExecuteScalar để đếm số bản ghi trong bảng KhachHang như sau: SqlCommand command = new SqlCommand("",conn); command.CommandText = "Select COUNT(*) From KhachHang"; int Sokhachhang =(int) command.ExecuteScalar(); MessageBox.Show("Total: “ + Sokhachhang); ❖ Querying Data – Truy vấn dữ liệu
  19. Khi dùng một lệnh SQL select, bạn lấy được một dữ liệu từ database để hiển thị. Để làm được điều này với SqlCommand, bạn cần dùng phương thức ExecuteReader để trả về một đối tượng SqlDataReader. - Khởi tạo mới một đối tượng Command với kết nối conn SqlCommand cmd = new SqlCommand("select * from KhachHang", conn); - Gọi phương thức Execute reader SqlDataReader rdr = cmd.ExecuteReader(); ❖ Inserting Data – Chèn dữ liệu Để chèn dữ liệu vào database, dùng phương thức ExecuteNonQuery() của đối tượng SqlCommand. Đoạn code sau cho thấy cách chèn dữ liệu vào một bảng trong database: string insertString = @" insert into MonHoc (MaMh, TenMh, LT, TH) values (‘003', ‘Lập Trình CSDL‘,30,30)"; - Khởi tạo mới một đối tượng Command với kết nối conn SqlCommand cmd = new SqlCommand(insertString, conn); - Gọi phương thức ExecuteNonQuery thực thi câu lệnh cmd.ExecuteNonQuery(); ❖ Updating Data – Cập nhật dữ liệu Phương thức ExecuteNonQuery cũng được dùng để cập nhật dữ liệu, như đoạn mã sau: string updateString = @" update MonHoc set Tenmh= ‘Lập Trình Cơ Sở Dữ Liệu’ where MaMh= '003’”;
  20. - Tạo mới đối tượng command với command text SqlCommand cmd = new SqlCommand(updateString); - Thiết lập kết nối cho thuộc tính Connection: cmd.Connection = conn; - Gọi phương thức ExecuteNonQuery thực hiện: cmd.ExecuteNonQuery(); ❖ Deleting Data – Xóa dữ liệu Chúng ta cũng có thể xóa dữ liệu bằng phương thức ExecuteNonQuery(). Ví dụ sau cho thấy cách xóa một dòng từ database với phương thức ExecuteNonQuery(): string deleteString = @"delete from Monhoc where Mamh= ‘003'"; - Tạo mới đối tượng command SqlCommand cmd = new SqlCommand(); - Gán giá trị cho thuộc tính CommandText cmd.CommandText = deleteString; - Thiết lập kết nối cho thuộc tính Connection cmd.Connection = conn; - Gọi phương thức ExecuteNonQuery thực hiện cmd.ExecuteNonQuery(); 2.2.4 Truyền tham số bằng Parameters Khi cần lọc kết quả dựa trên một vài điều kiện, điều kiện lọc được nhập từ người dùng, chúng ta sử dụng đối tượng Parameters trong câu lệnh SQL. - Dùng câu truy vấn với parameter bao gồm ba bước sau: Tạo một SqlCommand từ một câu lệnh có parameter. Khai báo một đối tượng SqlParameter, gán giá trị thích hợp cho nó. Gán đối tượng SqlParameter vào property Parameters của đối tượng SqlCommand. - Tạo một đối tượng SqlCommand sử dụng Parameter
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0