Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 21 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
21
Dung lượng
1,14 MB
Nội dung
10/31/2018 Lập trình Ứng dụng quản lý C#.NET ADO.NET Nội dung Tổng quan ADO.NET Các mơ hình kết nối Ứng dụng có kết nối Database Mẫu thiết kế Factory ADO.NET 10/31/2018 Nội dung Tổng quan ADO.NET Các mơ hình kết nối Ứng dụng có kết nối Database Mẫu thiết kế Factory ADO.NET Tổng quan ADO.NET Các hệ quản trị CSDL thông dụng FoxPro MS Access SQL Server Oracle DB2 MySQL … 10/31/2018 Lịch sử phát triển Lịch sử phát triển phương pháp kết nối thống ODBC (Open Database Connectivity): giao diện đặc tả phương thức thống mà nhà phát triển hệ CSDL phải thực ngôn ngữ C/C++ OLEDB (Object Linking and Embeding Database): cải tiến ODBC, liên kết tốt với thư viện nguyên gốc (native) hệ CSDL Đóng gói ODBC ADO (ActiveX Data Object): cải tiến thêm, dễ dàng cho người phát triển ứng dụng ADO.NET: thay ADO (khác hoàn toàn ADO) tương thích NET Mơ hình tổng qt 10/31/2018 Khái niệm ADO.NET tập lớp thư viện sử dụng để truy xuất liệu Thêm/xóa/sửa liệu Đọc liệu Chương trình CSDL, XML… Nằm thư viện lớp sở Net Framework ADO.NET thành phần nội Net Framework sử dụng ngơn ngữ hỗ trợ Net (C#, VB.Net, ) ASP.NET Windows Forms Class Framework Drawing XML Data ADO.NET Comman language Runtime System Services Các lớp ADO.Net đặt System.Data Chức cách sử dụng hoàn toàn giống 10/31/2018 Lợi ích ADO kết nối CSDL tốt, Đòi hỏi kết nối chuẩn COM Windows Xử lý kết nối CSDL qua Internet khó khăn khơng tốt ADO.Net Tích hợp chặt chẽ với XML Làm việc tốt môi trường Internet ADO.Net cải tiến ADO Khác biệt mơ hình (COM vs XML) Giống chức Kiến trúc 10/31/2018 Cây phân cấp đối tượng ADO.NET Các thành phần Connection: Là đối tượng có nhiệm vụ thực nhiệm vụ kết nối đến CSDL Command: Dùng để thực câu lệnh SQL thao tác với CSDL như: Insert, Update, Select, Delete DataReader: Dùng để đón nhận kết trả từ đối tượng Command DataAdapter: Có chức cầu nối nguồn (tệp) liệu bảng cached nhớ 10/31/2018 NET Data Provider NET Data Provider XXXConnection XXXCommand XXXDataReader Data Source DataSet XXXDataAdapter (CSDL) XXXParameter XXXTransaction Các Data Provider System.Data.OleDb: Access, SQL Server, Oracle System.Data.SqlClient: SQL Server System.Data.OracleClient: Oracle Ghi chú: Về mặt giao tiếp lập trình ứng dụng, thư viện không khác biệt nhiều Dùng thư viện System.Data.SqlClient truy xuất SQL Server nhanh System.Data.OleDb Dùng thư viện System.Data.OracleClient truy xuất Oracle nhanh System.Data.OleDb 10/31/2018 Thành phần giữ liệu DataTable đối tượng chứa bảng database nhớ DataSet đối tượng chứa nhiều DataTable với mối liên hệ chúng (relationship) kể ràng buộc (constraint) lưu hoàn toàn nhớ để làm việc offline Như DataSet dùng để nắm giữ liệu database cho phép thay đổi liệu bên nó, sau cập nhật lại cho database Mối quan hệ 10/31/2018 Các property quan trọng DataSet Tables: chứa DataTable Relations: chứa DataRelation DataTable Columns: chứa DataColumn Rows: chứa DataRow Constraints: chứa Constraint DataView DataView: dùng để trình bày liệu có đối tượng DataTable hình thức xếp, lọc, tìm kiếm, hiệu chỉnh điều hướng AllowDelete, AllowEdit, AllowNew: thuộc tính phép tương tác với liệu hiển thị DataView Count: trả số lượng mẩu tin truy vấn RowFilter: thuộc tính cho phép lọc liệu DataView tương tự mệnh đề WHERE câu lệnh SQL Sort: thuộc tính cho phép xếp mẩu tin theo điều kiện 10/31/2018 Thành phần DataColumn: phần tử tạo nên DataTable ColumnName: tên column DataType: kiểu liệu column AllowDBNull: cho phép liệu null hay không DefaultValue: liệu mặc định Unique: ràng buộc liệu DataRow: đối tượng nắm giữ liệu cho DataTable DataRowView: đối tượng nắm giữ liệu DataView Nội dung Tổng quan ADO.NET Các mơ hình kết nối Ứng dụng có kết nối Database Mẫu thiết kế Factory ADO.NET 10 10/31/2018 Mơ hình kết nối Connected Model Command Connection Chương trình DataReader Connection Connection: Kết nối vào CSDL Các lớp phụ trách kết nối ODBCConnection OleDBConnection SqlConnection OracleConnection Thuộc tính quan trọng ConnectionString: xác định nguồn liệu cần kết nối Phương thức quan trọng Open: mở kết nối Close: đóng kết nối 11 10/31/2018 Command Command: Thực lệnh Các lớp phụ trách ODBCCommand OleDBCommand SqlCommand OracleCommand Thuộc tính quan trọng Connection: xác định CSDL thực thao tác CommandText: xác định thao tác cần thực Parameters: xác định tham số lệnh Phương thức quan trọng ExecuteReader: phù hợp lệnh Select trả bảng liệu ExecuteScalar: phù hợp lệnh Select trả giá trị ExecuteNonQuery: phù hợp lệnh Insert, Delete, Update Reader Reader: Thực lệnh Đọc liệu từ CSDL Dùng lệnh ExecuteReader ExecuteScalar Lớp XXXDataReader Read GetXXX IsDBNull Dữ liệu đọc theo chiều tiến (Readonly) Book BookNam Author ID e Book Author Book Author Book3 Author 12 10/31/2018 Mơ hình ngắt kết nối Disconnected Model DataAdapter Chương trình Thành phần DataAdapter SelectCommand DataSet InsertCommand UpdateCommand Data Source DeleteCommand Fill: dùng SelectCommand lấy liệu từ Data Source đổ vào DataSet Update: dùng InsertCommand, UpdateCommand DeleteCommand cập nhật liệu DataSet vào Data Source 13 10/31/2018 Nội dung Tổng quan ADO.NET Các mơ hình kết nối Ứng dụng có kết nối Database Mẫu thiết kế Factory ADO.NET Ứng dụng kết nối Database Cấu hình chương trình Mỗi chương trình chạy đa phần cần có tham số ràng buộc tùy theo ngữ cảnh, liên hệ bên ngồi Ví dụ: cách thức hiển thị, cách kết nối database,… Làm để thay đổi tham số kể mà biên dịch lại chương trình Giải pháp sử dụng Configuration NET 14 10/31/2018 Ứng dụng kết nối Database (tt) Cấu hình chương trình System.Configuration namespace cung cấp mơ hình lập trình để xử lý liệu cấu hình (config) Với chương trình Application.NET liệu cấu hình lưu file App.config Với chương trình ASP.NET liệu cấu hình lưu fiel Web.config Cách dùng Application config: Yêu cầu bắt buộc phải add reference thư viện System.Configuration Ứng dụng kết nối Database (tt) Sau add file config vào project Thêm nội dung vào file config 15 10/31/2018 Ứng dụng kết nối Database (tt) ConfigurationManager Thuộc namespace System.Configuration Hỗ trợ xử lý liệu file cấu hình Cần quan tâm thuộc tính quan trọng là: AppSettings ConnectionStrings Ví dụ để lấy chuỗi connection string từ file config Ứng dụng kết nối Database (tt) DataGridView Là đối tượng dùng để trình bày liệu có DataSet, DataTable, DataView hình thức khác Có thể tùy biến column để thêm control như: Button, TextBox, ComboBox, CheckBox, Image, Link 16 10/31/2018 Ứng dụng kết nối Database (tt) Các property: DataSource: để gắn kết nguồn liệu mà DataGridView trình bày CurrentRow: để lấy mẩu tin chọn CurrentCell: để lấy ô chọn DefaultCellStyle: để định dạng hiển thị cho Columns: chứa DataGridViewColumn (có lớp dẫn xuất tương ứng) DataGridViewTextBoxColumn: column dạng TextBox DataGridViewCheckBoxColumn: column dạng CheckBox DataGridViewComboBoxColumn: column dạng ComboBox … Các event: SelectionChanged DoubleClick Nội dung Tổng quan ADO.NET Các mơ hình kết nối Ứng dụng có kết nối Database Mẫu thiết kế Factory ADO.NET 17 10/31/2018 Mẫu thiết kế Factory ADO.NET ADO.NET xây dựng tảng độc lập với Hệ quản trị sở liệu nên phương pháp kết nối truy vấn database tương đồng với dạng database (Oracle, SQL, Access, MySQL,…) Ví dụ: Đối tượng Connection đảm nhận việc mở đóng kết nối với phương thức: Open, Close,… Đối tượng Command đảm nhận việc thực thi lệnh với phương thức: ExecuteReader, ExecuteNonQuery, ExecuteScalar,… Mẫu thiết kế Factory ADO.NET (tt) Tuy nhiên với Hệ quản trị CSDL khác có cách thức kết nối truy vấn riêng biệt (driver) nên lớp đối tượng kể khác Ví dụ: Với SQL: SqlConnection, SqlCommand,… Với Access: OleDbConnection, OleDbCommand,… Vậy làm cách để cài đặt thật độc lập với Hệ quản trọ CSDL ??? 18 10/31/2018 Mẫu thiết kế Factory ADO.NET (tt) Abstract Factory Design Pattern Mẫu thiết kế Factory ADO.NET (tt) Ví dụ 19 10/31/2018 Mẫu thiết kế Factory ADO.NET (tt) Microsoft.NET thực mẫu thiết kế Factory ADO.NET để giải vấn đề “độc lập” với Hệ quản trị CSDL Các thành phần quan trọng Các lớp đối tượng Dbxxx namespace System.Data.Common Lớp đối tượng abstract DbProviderFactory thường tạo cụ thể từ phương thức tĩnh GetFactory DbProviderFactories Mẫu thiết kế Factory ADO.NET (tt) 20 10/31/2018 Bài tập Xây dựng ứng dụng cho phép kết nối với database QLHS với yêu cầu sử dụng SQL server MySQL (có thể thay đổi người dùng) 21