1. Trang chủ
  2. » Công Nghệ Thông Tin

giáo trình lập trình cơ sở dữ liệu nghề tin học ứng dụng cao đẳng

69 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 69
Dung lượng 1,26 MB

Cấu trú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)

Nội dung

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

T à NG QUAN V À ADO.NET

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 hai kiến trúc: kết nối và ngắt kết nối Mô hình ngắt kết nối cho phép lấy toàn bộ 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 Ngược lại, 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.

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

Thành phần thă nhất:.NET Framework Data Provider được thiết kế để thāc hiện cácthao 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ưutrÿ 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 vào 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: Lấy dữ liệu từ cơ sở dữ liệu- INSERT: Thêm dữ liệu vào cơ sở dữ liệu- UPDATE: Cập nhật dữ liệu trong cơ sở dữ liệu- DELETE: Xóa dữ liệu khỏi cơ sở dữ liệu

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

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; PWD3";

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();

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

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();

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

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();

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)

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

-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)

INSERT INTO Khoa (makhoa, tenkhoa) VALUES

('CNTT', N'Công nghệ thông tin'),

4 Kết nái từ giao diện Windows Forms C# đến cơ sở dÿ liệu đã tạo trênSQL Server và Microsoft Access

CÁC ĐàI T¯ỵ NG TRONG Mễ HèNH K ắ T N à I ADO.NET

Đá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ộc tính: ConnectionString: Thuộc tính chuỗi kết nái với CSDL

Open(): Phương thăc mở kết nái với CSDL;

Close(): Phương thăc đóng kết nái

- 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(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();

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();

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 để truyxuất data source, chẳng hạn như User ID và Password, … Ngoài nhÿng thông tin cơ bảnnà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 CatalogQuanLyBanHang; 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

Chuòi k¿t nỏi c sò dā liòu Access

- Chuỗi kết nái CSDL Access 97, 2000, 2002, 2003

Data Source=C:\\Database\\QuanLyBanHang.mdb;

- Chuỗi kết nái CSDL Access 2007, 2010, 2013

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

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

- 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

Đá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: 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 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

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

Các thuộc tính Mô tả

Thuộc tính DesignTimeVisible dùng để xác định liệu đối tượng Command có hiển thị trên một ô điều khiển Windows Form Designer hay không 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

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

Bước 1: Thāc hiện kết nái CSDL

Bước 2: Khởi tạo đái tượng Command

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

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

❖ 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 (8003', 8LÁp Trình

- 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= 8LÁp Trình Cơ Sở Dÿ Liệu9 where MaMh= '0039=;

- 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= 8003'";

- 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

- Tạo một đái tượng SqlCommand sử dÿng Parameter

Bước đầu tiên là tạo một câu lệnh chăa các parameter placeholder (tên cāa parameter) Tên này sẽ được thay thế bởi giá trị thāc sā cāa parameter khi SqlCommand thāc thi Cú pháp đúng cāa một parameter là dùng kí hiệu tiền tá8@9 trong tên cāa parameter như sau:

SqlCommand cmd = new SqlCommand(

Ngày đăng: 02/06/2024, 11:50

HÌNH ẢNH LIÊN QUAN

Hình 1.2  – Kiến trúc tổng quan của ADO.NET - giáo trình lập trình cơ sở dữ liệu nghề tin học ứng dụng cao đẳng
Hình 1.2 – Kiến trúc tổng quan của ADO.NET (Trang 5)