20. Tạo trang “dangky.aspx” với giao diện theo mẫu sau:
- Khi người dùng click vào nút “Gửi thông tin” thì sử dụng các biến session để lưu lại các thông tin, sau đó điều hướng sang trang “thongtindangky.aspx”.
- Trang “thongtindangky.aspx” sẽ hiển thị lại các thông tin vừa đăng ký.
21. Tạo một User Control cho phần đăng nhập hệ thống có giao diện như sau:
- Thêm thuộc tính cho phép người dùng đặt độ rộng của điều khiển.
22. Tạo User Control cho phần menu có giao diện như sau:
23. Tạo User Control cho phần chân trang có giao diện như sau:
24. Xử dụng MasterPage để xây dựng giao diện cho trang chủ phần Quản trị như hình bên dưới. Trong đó có các phần:
- UserControl Header: chứa nội dung phần đầu trang
- UserControl Left: chứa menu chức năng bên trái (nếu chưa xây dựng thì xem bài Lab-02-MenuLeft).
- Đặt 01 ContentPlaceHolder ở head để thay đổi tiêu đề trang.
- Đặt 01 ContentPlaceHolder để thể hiện phần nội dung của các trang.
- Xử lý việc click vào các chức năng bên trái để load nội dung tương ứng.
CHƯƠNG 4: TRUY NHẬP CƠ SỞ DỮ LIỆU
4.1. Giới thiệu chung
Khi phát triển các ứng dụng trên nền Web thì công việc chủ yếu phải giải quyết là xử lý các nghiệp vụ, trong đó phần lớn là xử lý cơ sở dữ liệu. Trong môi trường phát triển Microsoft .NET tất cả các ứng dụng Web Form hay Win Form đều thống nhất sử dụng chung một bộ thư viện để truy xuất và thao tác cơ sở dữ liệu gọi là ADO.NET (Active Data Object).
ADO.NET là một tập các lớp nằm trong bộ thư viện lớp cơ sở của .NET Framework, cho phép các ứng dụng Windows (như C#, VB.NET) hay ứng dụng Web (như ASP.NET) thao tác dễ dàng với các nguồn dữ liệu. Mục tiêu chính của ADO.NET là:
- Cung cấp các lớp để thao tác cơ sử dữ liệu trong cả hai môi trường là phi kết nối (Disconected data) và kết nối (Connected data).
- Tích hợp chặt chẽ với XML (Extensible Markup Language).
- Tương tác với nhiều nguồn dữ liệu thông qua mô tả dữ liệu chung.
- Tối ưu truy cập nguồn dữ liệu (OLE DB & SQL Server).
- Làm việc trên môi trường Internet.
ADO.NET bao gồm hai Provider (hai bộ thư viện) để thao tác với các cơ sở dữ liệu là: OLE DB Provider (nằm trong System.Data.OLEDB) dùng để truy xuất đến cơ sở dữ liệu nào có hỗ trợ OLEDB; SQL Provider (nằm trong System.Data.SQLClient) chuyên dùng để truy xuất đến cơ sở dữ liệu SQL Server (không qua OLE DB nên nhanh hơn).
Hiện nay, các hãng thứ ba cung cấp các Provider khác như : MySQL, Oracle… provider cho phép ứng dụng .NET truy xuất đến cơ sở dữ liệu không phải của Microsoft.
Hình 4.1. Vị trí của ADO.NET trong kiến trúc của .net Framework
Từ kiến trúc ta thấy rằng: ADO.NET là một thành phần nội tại (Instrict) của .NET Framework. Do vậy nó có thể được sử dụng trong tất cả các ngôn ngữ hỗ trợ .NET như C#, VB.NET… mà không có sự khác biệt.
4.2. Kiến trúc của ADO.NET
ADO.NET là một phần của .NET Framework, được xem là “bộ thư viện lớp” chịu trách nhiệm xử lý dữ liệu trong ngôn ngữ MS .NET.
ADO.NET gồm hai thành phần chính cho việc truy xuất và điều khiển dữ liệu đó là các trình cung cấp dữ liệu .NET Framework (.NET Framework Data Provider) và DataSet. Mô hình dưới đây minh họa mối quan hệ giữa trình cung cấp dữ liệu của .NET Framework và DataSet.
Hình 4.2. Kiến trúc ADO.NET
Việc kết nối giữa ứng dụng và cở sở dữ liệu thông qua ADO.NET theo chế độ Connected và Disconnected .
Connected: Cơ chế này yêu cầu phải thực hiện kết nối với Database trong khi đang thực hiện các thao tác với dữ liệu. Các đối tượng của cơ chế này là:
+ Connection: Đối tượng quản lý đóng/mở kết nối tới Database.
+ Command: Đối tượng thực hiện các câu lệnh tương tác truy vấn, rút trích dữ liệu từ database sau khi đã thiết lập kết nối tới dữ liệu và trả về kết quả.
+ DataReader: Đối tượng xử lý đọc dữ liệu từ cơ sở dữ liệu.
+ DataAdapter: Đây là đối tượng rất quan trọng của ADO.NET là cầu nối của Database và Dataset (Dataset là đối tượng ngắt kết nối), vì đối tượng “ngắt kết nối” Dataset không thể tương tác trực tiếp với Database nên cần một đối tượng trung gian lấy
dữ liệu từ Database đó chính là DataAdapter. DataAdpater khi thao tác với Database vẫn phải duy trì kết nối nên nó được liệt kê vào dạng “kết nối” nhưng bản chất phục vụ cho việc “ngắt kết nối”.
Disconnected: Chỉ có một đối tượng chịu trách nhiệm ngắt kết nối đó chính là DataSet. Nhiệm vụ của DataSet là nhận dữ liệu về từ DataAdapter và xử lý nó. DataSet có thể được xem như một Database trong bộ nhớ gồm tất cả các bảng, quan hệ….. DataSet có nhiều đối tượng được xem là “con” như: DataTable, cấp thấp hơn của DataTable có các đối tượng DataRow, DataColumn, DataRelation. Ngoài ra còn có các đối tượng nhóm như DataTableCollection, DataRowCollection, DataColumnCollection. Việc sử dụng DataSet là một tiến bộ lớn của kiến trúc ADO.NET.
Hình 4.3. Cơ chế kết nối ADO.NET
4.3. Tìm hiểu trình cung cấp dữ liệu của ADO.NET
ADO.NET hỗ trợ nhiều trình cung cấp dữ liệu, mỗi trình cung cấp tương tác với một hệ quản trị cơ sở dữ liệu (DBMS) cụ thể. Lợi ích đầu tiên của phương pháp này là một trình cung cấp dữ liệu cụ thể có thể được lập trình để truy xuất đến bất cứ thuộc tính nào của một DBMS mà được chỉ định bởi trình cung cấp đó. Lợi ích khác đó là trình cung cấp dữ liệu có thể kết nối ngay lập tức đến cơ sử dữ liệu mà không thông qua tầng ánh xạ trung gian giữa các lớp.
Hình 4.4. Các lớp giữa code và nguồn dữ liệu
Một trình cung cấp dữ liệu là tập hợp các kiểu được định nghĩa trong namespace System.Data, cho biết cách để giao tiếp với một nguồn dữ liệu cụ thể. Một trình cung cấp định nghĩa một tập hợp các kiểu lớp mà cung cấp các chức năng cơ bản.
Các đối tượng cơ bản của một trình cung cấp dữ liệu ADO.NET.
Lớp cơ sở | Giao diện | Ý nghĩa | |
Connection | DbConnection | IDbConnection | Cung cấp khả năng kết nối và ngắt kết nối với nguồn dữ liệu. |
Command | DbCommand | IDbCommand | Trình bày một truy vấn SQL hoặc stored procedure. |
DataReader | DbDataReader | IDataReader IDataRecord | Đọc nguồn dữ liệu theo một chiều. |
DataAdapter | DbDataAdapter | IDataAdapter IDbDataAdapter | Chuyển DataSets giữa các đối tượng gọi (caller) và kho dữ liệu. |
Parameter | DbParameter | IDataParameter IDbDataParameter | Miêu tả tên gọi tham số bên trong truy vấn có tham số (parameterized query). |
Transaction | DbTransaction | IDbTransaction | Đóng gói (Encapsulates) một database transaction. |
Có thể bạn quan tâm!
- Nội Dung Tệp Css Và Cách Sử Dụng Tệp Css Trong File Nguồn
- Tạo Trang Web.sitemap Với Mục Chọn Sitemap
- Lập trình trên nền Web - 24
- Kết Nối Đến Cơ Sở Dữ Liệu Và Đọc Dữ Liệu
- Lập trình trên nền Web - 27
- Lập trình trên nền Web - 28
Xem toàn bộ 285 trang tài liệu này.
Mặc dù tên của các đối tượng này sẽ khác nhau tùy thuộc trình cung cấp dữ liệu (ví dụ: SqlConnection khác với OracleConnection khác với OdbcConnection khác với MySqlConnection) nhưng mỗi đối tượng đều kế thừa từ một lớp cơ sở (base class) (DbConnection trong trường hợp các đối tượng kết nối) và thi hành interface (như IDbConnection).
Các trình cung cấp dữ liệu ADO.NET được cung cấp bởi Microsoft.
Namespace | Assembly | |
OLE DB | System.Data.OleDb | System.Data.dll |
Microsoft SQL Server | System.Data.SqlClient | System.Data.dll |
Microsoft SQL Server Mobile | System.Data.SqlServerCe | System.Data.SqlServerCe.dll |
ODBC | System.Data.Odbc | System.Data.dll |
Oracle | System.Data.OracleClient | System.Data.OracleClient.dll |
Trình cung cấp dữ liệu OLE DB và ODBC chỉ hữu ích nếu tương tác với một DBMS mà không định nghĩa một trình cung cấp dữ liệu .NET cụ thể.
4.4. Các namespace của ADO.NET
.NET cung cấp một số namespace cho ADO.NET, một vài namespace trong đó được thể hiện trong bảng sau:
Ý nghĩa | |
Microsoft.SqlServer.Server | Namespace này cung cấp các loại phục vụ việc tích hợp CLR và SQL Server 2005 được dễ dàng. |
System.Data | Namespace này định nghĩa các loại ADO.NET cơ sở được sử dụng bởi tất cả trình cung cấp dữ liệu, bao gồm các Interface phổ biến và các loại thể hiện lớp ngắt kết nối. (DataSet, DataTable, etc.). |
System.Data.Common | Namespace này chứa các loại được dùng chung trong tất cả các trình cung cấp của ADO.NET, bao gồm các lớp cơ sở ảo (abstract base classe) phổ biến. |
System.Data.Sql | Namespace này chứa các loại mà cho phép nhận ra các thể hiện Microsoft SQL Server được cài đặt trên mạng cục bộ hiện hành. |
System.Data.SqlTypes | Namespace này chứa các loại dữ liệu tự nhiên (native data types) được dùng bởi Microsoft SQL Server. |
Namespace System.Data: Namespace này chứa các loại được dùng chung trong tất cả các trình cung cấp dữ liệu của ADO.NET.
Các thành viên chính của System.Data Namespace.
Ý nghĩa | ||||||||
Constraint | Trình bày (Represent) một ràng buộc cho một đối tượng DataColumn đã cho. | |||||||
DataColumn | Trình bày DataTable. | một | column | bên | trong | một | đối | tượng |
DataRelation | Trình bày mối quan hệ parent/child giữa hai đối tượng DataTable. | |||||||
DataRow | Trình bày một dòng bên trong một đối tượng DataTable. | |||||||
DataSet | Trình bày một vùng trong bộ nhớ của dữ liệu bao gồm mọi thành phần của đối tượng DataTable có quan hệ với nhau. | |||||||
DataTable | Trình bày bảng trong bộ nhớ | |||||||
DataTableReader | Cho phép xem xét một DataTable. | |||||||
DataView | Trình bày một view của một DataTable cho việc sắp xếp, việc lọc, việc tìm kiếm, chỉnh sửa và điều hướng. | |||||||
IDataAdapter | Định nghĩa cách hành xử chính (core behavior) của một đối tượng DataAdapter. | |||||||
IDataParameter | Định nghĩa cách hành xử chính (core behavior) của một đối tượng parameter. | |||||||
IDataReader | Định nghĩa cách hành xử chính (core behavior) của một đối tượng DataReader. | |||||||
IDbCommand | Định nghĩa cách hành xử chính (core behavior) của một đối tượng command. | |||||||
IDbDataAdapter | Kế thừa IDataAdapter để cung cấp thêm các chức năng của một đối tượng DataAdapter | |||||||
IDbTransaction | Định nghĩa cách hành xử cốt lòi (core behavior) của một đối tượng Transaction. |
IDbConnection Interface: Được thi hành bởi đối tượng connection của trình cung cấp dữ liệu. Interface này định nghĩa một tập hợp các thành phần được dùng để tạo một kết nối đến kho dữ liệu và nó cũng cho phép lấy được đối tượng Transaction của trình cung cấp dữ liệu. Dưới đây định nghĩa của IDbConnection.