Tài liệu tham khảo Lập trình web form với ADO.Net
11 Chương 6 Lập Trình Web Form Với ADO.Net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net 1 Tổng quan về ADO.Net 2 Các đối tượng trong ADO.Net 3 Xây dựng lớp xử lý dữ liệu 4 Xử lý giỏ hàng cho website thương mại điện tử 22 1. Tổng Quan Về ADO.Net 1.1 Giới thiệu Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net 1.2 Kiến trúc ADO .Net 1.3 Minh họa tạo kết nối CSDL 33 Hầu hết ứng dụng windows hay website đều cần có CSDL, để lưu trữ, xử lý, tìm kiếm và báo cáo… Khi dữ liệu trở thành trung tâm của ứng dụng thì việc cung cấp các chức năng tới người dùng phụ thuộc vào khả năng thao tác dữ liệu, vấn đề cần quan tâm là: Lưu dữ liệu tập trung. Đảm bảo toàn vẹn dữ liệu. Đảm bảo khả năng truy xuất đồng thời. Đảm bảo thời gian hồi đáp ngắn. Bảo mật dữ liệu. Trao đổi dữ liệu giữa các hệ thống khác nhau Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net 1.1 Giới Thiệu 44 Vấn đề này được giải quyết dựa vào khả năng của các Hệ QTCSDL. .Net truy xuất DL qua ADO.NET, đặc điểm chính của ADO.NET là: Khả năng làm việc với DL không kết nối: DL được lưu trữ trong bộ nhớ như một CSDL thu nhỏ (dataset), nhằm tăng tốc độ xử lý tính toán và hạn chế sử dụng tài nguyên. Khả năng xử lý dữ iệu chuẩn XML (Có thể trao đổi giữa bất kỳ hệ thống nào) Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net 55 1.2 Kiến Trúc ADO.Net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net 66 Kiến trúc ADO.NET có thể chia làm 2 phần chính: Managed Provider Component: Bao gồm các đối tượng như DataAdapter, DataReader,… giữ nhiệm vụ làm việc trực tiếp với dữ liệu như database, file,… Content Component: Bao gồm các đối tượng như DataSet, DataTable,… đại diện cho dữ liệu thực sự cần làm việc. Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net 77 DataReader: Là đối tượng giúp truy cập dữ liệu nhanh chóng. DataSet: Là một bản sao thu nhỏ của CSDL trong bộ nhớ với nhiều bảng và các mối quan hệ. DataAdapter: Là đối tượng kết nối giữa DataSet và CSDL, nó bao gồm 2 đối tượng Connection và Command để cung cấp dữ liệu cho DataSet cũng như cập nhật dữ liệu từ DataSet xuống CSDL. Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net 88 1.3 Minh họa tạo kết nối CSDL Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net Cơ bản các bước thực hiện với database Bước 1: Tạo kết nối Bước 2: Mở kết nối dữ liệu Bước 3: Tạo lệnh điều khiển truy vấn SQL Bước 4: Thực thi lệnh Bước 5: Đóng kết nối Bước 6: in kết quả 99 Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net using System; using System.Data; using System.Data.SqlClient; public partial class vd1 : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { //Khai báo và khởi tạo biến Connection SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); cnn.Open(); //Mở kết nối //Command điều khiển truy vấn sql SqlCommand cmd = cnn.CreateCommand(); cmd.CommandText="select TenKH from Khachhang where MaKH=5"; //lấy về chuỗi giá trị trong cơ sở dữ liệu string result = (string)cmd.ExecuteScalar(); cnn.Close(); //đóng kết nối Response.Write(result); //in giá trị ra màn hình } } Ví dụ: 1010 2. Các đối tượng trong ADO.Net 2.1 Connection 2.2 Command Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet.net [...]...2.1 Connection Vai trò của Connection trong ADO.net là tạo kết nối giữa ứng dụng với CSDL Data Provider System.Data.Oledb : Sử dụng với Access System.Data.SqlCient : Sử dụng với SQLServer Ứng với mỗi tên miền: System.Data.Oledb.OledbConnection System.Data.SqlClient.SqlConnection Và các Data Provider khác: System.data.OcracleClient(Ocracle)... vào Data Provider: Nếu kết nối với CSDL Access Provider: Khai báo Data Provider của Access Data Source: Tên tập tin CSDL (.mdb) User ID: Tên người dùng Password : Mật khẩu 12 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ: Tạo kết nối với CSDL Access using System; using System.Data; using System.Data.OleDb; public partial class VD2 : System .Web. UI.Page { protected void Page_Load(object... kết nối với CSDL SQLServer Provider: Khai báo Data Provider của SQLServer Data Source/Server: Tên Server Initial Catalog/DataBase: Tên CSDL User ID/UID: Tên người dùng Password/ PWD: Mật khẩu Integrated Security: Cơ chế chứng thực đăng nhập true: tài khoản Windows; false: Tài khoản SqlServer (ví dụ: sa) 14 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ: Tạo kết nối với CSDL... response.write(“Thất bại!“); } © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM 2.3 DataReader Là đối tượng truy cập dữ liệu trực tiếp, sử dụng con trỏ phía Server và duy trì kết nối với Server trong suốt quá trình đọc dữ liệu, Tùy theo loại Connection mà DataReader thuộc tên miền: System.Data.OleDb.OleDbDataReader System.Data.SqlClient.SqlDataReader 33 © Dương Thành Phết-www.thayphet.net Khoa... xuất, xử lý dữ liệu cnn.Close(); } } 15 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM Các thuộc tính Của Connection DataBase: Tên CSDL DataSource: Tên Server Provider:Tương ứng với Provider của HQTCSDL State: Tình trạng kết nối của Connection: Broken: Kết nối đã bị ngắt khi đã kết nối Closed: Kết nối đã đóng Connecting: Đang kết nối Executing: Kết nối đang thực hiện một lệnh... việc Close : Đóng kết nối Dispose: Giải phóng bộ nhớ Open: Thực hiện kết nối 17 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM 2.2 Command Sau khi tạo kết nối CSDL, mọi thao tác với nguồn dữ liệu có thể được thực hiện thông qua Command Tùy theo loại Connection đối tượng Command thuộc tên miền: System.Data.OleDb.OleDbCommand System.Data.SqlClient.SqlCommand 18 © Dương Thành Phết-www.thayphet.net... cmd.Parameters.Add(“@MAMH”,OleDbType.Char,4); Ts1.Value=”MH01”; 28 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM Thực hiện Command: Phương thức ExecuteReader: Trả về đối tượng DataReader để đọc dữ liệu mỗi lần một dòng với phương thức Read.(DataReader đọc dữ liệu trực tiếp từ nguồn nên phải duy trì kết nối đến khi đọc xong) SqlDataReader As SqlDataReader; = .ExecuteReader;... Delete, Create,… Phương thức ExcuteScalar: Trả về từ phát biểu SQL dạng Select chỉ có một cột một hàng 29 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ 1: Sử dụng Command với câu lệnh Select try { SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand(); cmd.Connection = cnn; //Loại command... response.write(count.ToString()); cnn.Close(); } catch (Exception) { response.write("Không thành công!“); } 30 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ 2: Sử dụng Command với lệnh Insert,Update,Delete try { SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand(); cmd.Connection = cnn;... cmd.ExecuteNonQuery(); response.write("Thành công!“); cnn.Close(); } catch (Exception) { response.write(“Thất bại!“); } 31 © Dương Thành Phết-www.thayphet.net Khoa CNTT, Trường CĐ CNTT TP.HCM Ví dụ 3: Command với lệnh Insert,Update,Delete + Tham số try { SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand(); cmd.Connection . 11 Chương 6 Lập Trình Web Form Với ADO. Net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet .net 1 Tổng quan về ADO. Net 2 Các. Phết-www.thayphet .net 55 1.2 Kiến Trúc ADO. Net Khoa CNTT, Trường CĐ CNTT TP.HCM © Dương Thành Phết-www.thayphet .net 66 Kiến trúc ADO. NET có thể