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

Tuan03 ado net

21 2 0

Đ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 21
Dung lượng 1,16 MB

Nội dung

9/16/2019 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 9/16/2019 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 … 9/16/2019 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 9/16/2019 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 9/16/2019 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 9/16/2019 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ớ 9/16/2019 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 9/16/2019 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ệ 9/16/2019  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 9/16/2019 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 9/16/2019 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 9/16/2019 Connection String  Microsoft SQL Server Connection String connetionString="Data Source=ServerName;Initial Catalog=Databasename; User ID=UserName;Password=Password"  OLEDB Data Provider Connection String connetionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=yourdatabasename.mdb;"  ODBC Connection String connetionString="Driver={Microsoft Access Driver (*.mdb)}; DBQ=yourdatabasename.mdb;" 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 12 9/16/2019 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 Mơ hình ngắt kết nối  Disconnected Model DataAdapter Chương trình 13 9/16/2019 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 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 14 9/16/2019 Ứ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à khơng phải biên dịch lại chương trình  Giải pháp sử dụng Configuration NET Ứ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 15 9/16/2019 Ứ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 Ứ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 16 9/16/2019 Ứ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 Ứ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 17 9/16/2019 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 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,… 18 9/16/2019 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 ??? Mẫu thiết kế Factory ADO.NET (tt)  Abstract Factory Design Pattern 19 9/16/2019 Mẫu thiết kế Factory ADO.NET (tt)  Ví dụ 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 20 9/16/2019 Mẫu thiết kế Factory ADO.NET (tt) Bài tập  Xây dựng ứng dụng cho phép kết nối với database QLHS [các chức năng: lấy danh sách Lớp học, cho phép lựa chọn hiển thị danh sách Học sinh lớp chọn] với yêu cầu cho phép người dung thay đổi server database 21

Ngày đăng: 09/04/2023, 06:29