Mời các bạn tham khảo Bài giảng Phát triển web nâng cao - Bài 5: ADO.NET sau đây để nắm bắt được những kiến thức về khái niệm, các lớp và không gian tên cơ bản của ADO.NET, thao tác với dữ liệu kết nối – Connected, thao tác với dữ liệu không kết nối - Disconnected.
Bài 5: ADO.NET 5.1 Khái niệm 5.2 Các lớp không gian tên ADO.NET 5.3 Thao tác với liệu kết nối – Connected 5.4 Thao tác với liệu không kết nối - Disconnected 5.1 Khái niệm ADO.NET • Khi phát triển ứng dụng web cơng việc chủ yếu phải giải xử lý Cơ sở liệu • ADO.NET (Active Data Object) cho phép thao tác Cơ sở liệu : – Các ứng dụng webform – Các ứng dụng winform Mục tiêu ADO.NET • Cung cấp lớp để thao tác CSDL hai môi trường phi kết nối (Disconected data) 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 liệu thơng qua mơ tả liệu chung • Tối ưu truy cập nguồn liệu (OLE DB & SQL server) • Làm việc môi trường Internet ADO vs ADO.NET 5.2 Các lớp không gian tên ADO.NET • Lớp ADO.NET tìm thấy namespace System.Data, tích hợp với lớp XML tìm thấy namespace System.Xml Connection • Khơng gian tên sử dụng ADO.NET gồm: – System.Data – System.Data.Common: • ADO.NET Dataset: Là thành phần kiến trúc kết nối gián đoạn ADO.NET Dataset bao gồm tập hợp nhiều đối tượng DataTable • NET Data Provider: Một tập hợp thành phần bao gồm đối tượng – System.Data.SqlClient: Dùng cho sở liệu SQL – System.Data.OleDb: Dùng cho sở liệu access – System.Data.OracleClient: Dùng cho sở liệu Oracle Đón nhận kết trả từ đối tượng Command Thực câu lệnh SQL thao tác với CSDL Thực nhiệm vụ kết nối đến CSDL Cấu trúc Kho chứa bảng Cầu nối nguồn liệu bảng cached nhớ ADO.NET cho phép làm việc hai chế độ: • Chế độ Kết nối (Connected) • Phi kết nối (Disconnected) Connection Connection Application • Ý nghĩa: Kết nối đến CSDL • Thuộc tính: • ConnectionString: chuỗi kết nối DataSource • Phương thức: • Open(): thiết lập kết nối đến DataSource • Close(): đóng kết nối với DataSource Database Command Connection Command Application Database • Ý nghĩa: Thực câu lệnh SQL để thao tác với CSDL • Thuộc tính: • Connection: kết nối để thực lệnh • CommandText: câu lệnh cần thực • CommandType: loại câu lệnh (Text, TableDirect, StoredProc) • Phương thức: • ExecuteScalar(): thực câu lệnh trả giá trị đơn • ExecuteNonQuery(): gọi lệnh SQL, store, trả số row bị tác động (Insert, Update, Delete…) • ExecuteReader(): thực lệnh trả DataReader Command với Parameter • Khái niệm: Câu lệnh truy vấn SQL nhận giá trị thông qua tham số thời điểm thực thi • Cách sử dụng: – Tạo tham số câu lệnh SQL – Khai báo Parameter với thơng tin chính: • tên tham số • kiểu liệu • loại tham số vào/ra • giá trị – Liên kết Parameter với Command DataSet • Là thành phần lưu trữ liệu • Đặc điểm: – Khơng kết nối với nguồn liệu – Không phân biệt liệu thuộc nguồn (SQL Server, OLE DB, ODBC, …) – Có thể lưu trữ liệu từ nhiều bảng (Table), nhiều nguồn (Data Source) khác – Dữ liệu DataSet quản lý DataTable • Dữ liệu đưa vào DataSet thành phần DataAdapter Net data provider DataSet - DataTable • Ý nghĩa: Thể bảng CSDL • Thuộc tính: • • • • TableName: tên bảng liệu Columns: danh sách cột Rows: danh sách mẫu tin PrimaryKey: danh sách cột khóa • Phương thức: • NewRow(): tạo mẫu tin 17 DataSet - DataColumn • Ý nghĩa: Đại diện cho cột bảng • Thuộc tính phương thức: – – – – – ColumnName: tên cột DataType: kiểu liệu Columns.Count: Số cột Columns.[chỉ số]: Truy xuất DataColumn Columns.[“Tên cột”]: Truy xuất DataColumn DataSet - DataRow • Ý nghĩa: Đại diện cho mẫu tin bảng • Thuộc tính : – RowState: trạng thái Added, Modified, Deleted,… • Phương thức: – – – – Rows.Count: Rows[chỉ số dòng][chỉ số cột]: truy xuất đến cột I Rows[chỉ số dòng][tên cột] : truy xuất đến cột I Delete(): đánh dấu xóa mẫu tin DataTable Row 19 Column1 Column2 … Column n abc xyz omt … … … … … … 5.3 Kết nối để thao tác với liệu • Khái niệm • Lấy liệu • Thao tác với liệu Khái niệm • Mỗi user có kết nối cố định tới data source • Ưu điểm: – Môi trường bảo vệ tốt – Kiểm sốt đồng – Dữ liệu ln • Nhược: – Phải có kết nối mạng cố định Lấy liệu • b1 Tạo Connection đến CSDL • b2 Tạo biến DataCommand gắn với biến DataConnection mở • b3 Tạo biến DataReader: – – Thi hành phương thức ExcuteReader() Đọc trình bày liệu • b.4 Đóng giải phóng biến đối tượng Thao tác với liệu • b1 Khai báo biến đối tượng DataConnection, mở kết nối đến sở liệu • b2 Tạo biến DataCommand gắn với biến DataConnection mở • b3 Gán giá trị cho thuộc tính CommandType biến đối tượng DataCommand • b4 Gán câu lệnh truy vấn (insert, update, delete, gọi store procedure…) cho thuộc tính CommandText biến đối tượng DataCommand • b5 Thi hành phương thức ExcuteNonquery() biến đối tượng DataCommand • b6 Đóng giải phóng biến đối tượng khơng cần thiết Demo Thực cơng việc: • Kết nối CSDL • Đọc liệu CSDL đưa lên web thơng qua ListBox • Đọc liệu CSDL với tham số đưa lên web thơng qua ListBox • Chèn vào CSDL ghi • Sửa ghi CSDL • Xóa ghi CSDL 5.3 Thao tác với liệu (phi kết nối) • • • • Khái niệm Các bước Lấy liệu để thao tác Thực thao tác CSDL Khái niệm • Một tập liệu trung tâm chép bổ sung độc lập, sau merge lại vào liệu trung tâm • Ưu điểm – Có thể làm việc lúc nào, kết nối vào Data Source – Cho phép user khác kết nối – Nâng cao hiệu suất thực ứng dụng • Khuyết – Dữ liệu khơng cập nhật cách nhanh – Sự tranh chấp xuất phải giải Các bước DataConnection: Dùng để mở kết nối đến sở liệu (Có thể có khơng) DataAdapter DataSet Ngồi cịn sử dụng số đối tượng khác DataTable, DataRow… Lấy liệu để thao tác • b1 Cần khai báo biến đối tượng DataConnection, mở kết nối đến sở liệu (Bước khơng cần thiết) • b2 Tạo biến DataAdapter, Chỉ rõ nguồn liệu cần lấy gắn với đối tượng DataConnection mở xâu kết nối đến sở liệu • b3 Tạo DataSet thi hành phương thức Fill để điền liệu lấy vào DataSet • b4 Sử dụng tập hợp Tables đối tượng DataSet để làm việc với liệu lấy • b5 Đóng giải phóng đối tượng khơng cần thiết Thực thao tác sở liệu • b1 Khai báo biến đối tượng DataConnection, mở kết nối đến sở liệu (Bước khơng cần thiết) • b2 Khai báo tạo đối tượng DataAdapter • b3 Tạo đối tượng CommandBuilder gắn với biến đối tượng DataAdapter • b4 Tạo DataSet thi hành phương thức Fill để điền liệu lấy vào DataSet • b5 Thi hành phương thức Update để cập nhật thay đổi liệu bảng lên sở liệu • b6 Đóng giải phóng biến đối tượng khơng cần thiết Demo2 • Yêu cầu 1: Lấy liệu từ bảng CSDL, cho hiển thị lên web • Yêu cầu 2: Cập nhật trường CSDL ...5.1 Khái niệm ADO.NET • Khi phát triển ứng dụng web cơng việc chủ yếu phải giải xử lý Cơ sở liệu • ADO.NET (Active Data Object) cho phép thao tác Cơ sở liệu : – Các ứng dụng webform – Các ứng... ADO vs ADO.NET 5.2 Các lớp không gian tên ADO.NET • Lớp ADO.NET tìm thấy namespace System.Data, tích hợp với lớp XML tìm thấy namespace System.Xml Connection • Khơng gian tên sử dụng ADO.NET. .. gian tên sử dụng ADO.NET gồm: – System.Data – System.Data.Common: • ADO.NET Dataset: Là thành phần kiến trúc kết nối gián đoạn ADO.NET Dataset bao gồm tập hợp nhiều đối tượng DataTable • NET Data