Chương 5 ỨNG DỤNG CSDL VÀ ADO.NET
Nội dung Thiết kế ứng dụng CSDL Kiến trúc ADO.NET
Thiết kế ứng dụng CSDL Định nghĩa [Ứng dụng CSDL]: Ứng dụng CSDL (Data–Centric Applications hay Database Centric Applications hay Data–Driven Application) là loại ứng dụng mà dữ liệu hay CSDL đóng vai trò tiên quyết. Ví dụ: Chương trình quản lý nhà sách Hệ thống chương trình quản lý ngân hàng Ung dung CSDL = CSDL + Xuly
Giới thiệu ADO.NET Khái niệm ứng dụng CSDL Data source
Thiết kế ứng dụng CSDL Các loại Data Storage được hổ trợ trong .NET File dữ liệu không cấu trúc File dữ liệu có cấu trúc CSV, Excel, … File dữ liệu phân cấp (Hierarchical) XML, … CSDL quan hệ Oracle, DB2, MS SQL Server, MS Access, …
Thiết kế ứng dụng CSDL Định nghĩa [Môi trường Connected]: Môi trường connected là môi trường mà ứng dụng luôn luôn kết nối đến nơi cung cấp dữ liệu (data source) Ưu điểm: Dễ đồng bộ dữ liệu Dễ bảo mật Khuyết điểm Luôn kết nối mạng liên tục Khó mở rộng
Thiết kế ứng dụng CSDL Định nghĩa [Môi trường Disconnected]: Môi trường Disconnected là môi trường mà ứng dụng sao chép một tập con dữ liệu từ data storage về phía ứng dụng để dùng Ưu điểm: Truy cập dữ liệu khi thuận lợi Nhiều người dùng có thể dùng kết nối Tăng cường hiệu quả và khả năng mở rộng ứng dụng Khuyết điểm Dữ liệu không luôn luôn cập nhật dữ liệu Phải giải quyết tranh chấp
Thiết kế ứng dụng CSDL 2-Tier 3-Tier N-Tier Internet “Thin” Client XML Web service N-Tier 3-Tier “Thin” Client 1-Tier (monolithic) Client logic Business logic Data storage 2-Tier “Fat” Client Data Access Application Models
Thư viện truy cập dữ liệu Tables, Rows, Values, Relationship Kiến trúc ADO.NET Application và Database Database Lưu thông tin dưới dạng: Tables gồm tập Rows và Columns và các Values bên trong nó Các Relationships giữa các Tables Application Biểu diễn dữ liệu dưới dạng Object Thư viện truy cập dữ liệu Object Tables, Rows, Values, Relationship
Kiến trúc ADO.NET Data source ADO.NET
Kiến trúc ADO.NET ADO.NET là gì? Application (C#, VB.NET, …) Thư viện truy cập dữ liệu ADO.NET Data source Data–Driven Application ADO.NET là một phần của .NET Framework ADO.NET là một thư viện chứa các lớp thực hiện các chức năng Kết nối đến data source, Thực thi câu lệnh Lấy dữ liệu, Thao tác, Lưu trữ Hinh trên tổng quát hơn Data source: lưu trữ dữ liệu dựa trên file lưu trữ dữ liệu dựa trên server Data–Driven Application Ứng dụng hướng dữ liệu
Kiến trúc ADO.NET Các namespace quan trọng trong ADO.NET System.Data System.Data.Common System.Data.SqlClient System.Data.OleDb System.Data.SqlTypes System.Xml
Kiến trúc ADO.NET Những đối tượng quan trọng trong ADO.NET Đối tượng Disconnected Đối tượng Connected Data Source DataSet DataTable DataRow … Connection Command Parameter … Application DataAdapter Application dùng Đối tượng Connected hay Disconnected Disconnected dùng Connected, ngược lại không được
Kiến trúc ADO.NET Những đối tượng quan trọng trong ADO.NET Các chức năng của ADO.NET nằm trong namespace System.Data Kiến trúc ADO.NET được chia làm 2 phần Connected Disconnected Những lớp khác nhau của ADO.NET có thể phân loại thành: Connected và Disconnected. Ngoại lệ là lớp DataAdapter Phần connected là tập đối tượng yêu cầu phải có một kết nối đang mở khi chúng làm việc và tương tác với data source DataAdapter là lớp giao tiếp giữa Connected và Disconnected
Kiến trúc ADO.NET Những đối tượng quan trọng trong ADO.NET Các đối tượng Connected Connection Transaction DataAdapter Command Parameter DataReader
Kiến trúc ADO.NET Những đối tượng quan trọng trong ADO.NET Các đối tượng Disconnected DataSet DataTable DataRow DataColumn DataView Constraint DataRelation
Kiến trúc ADO.NET .NET Data Providers ADO.NET hiện thực (bao gồm) tập các lớp connected cho từng loại CSDL Ví dụ: Để kết nối với MS SQL Server, chúng ta có lớp giành riêng là SqlConnection Tập các lớp connected cho một CSDL nào đó được nằm trong 1 namespace riêng Ví dụ: System.Data.SqlClient Định nghĩa “.Net Data Provider”: Là một tập lớp connected nằm trong cùng 1 namespace và được thiết kế để làm việc với một loại CSDL cụ thể ADO.NET hien thuc cac đối tượng connected theo từng loại csdl cụ thể
Kiến trúc ADO.NET .NET Data Providers Đối tượng Disconnected Data Source Đối tượng Connected DataSet DataTable DataRow … Connection Command Parameter … Application DataAdapter
Kiến trúc ADO.NET .NET Data Providers SQL Server .Net Data Provider cho SQL Server Application SqlDataAdapter Oracle .Net Data Provider cho Oracle OracleDataAdapter Đối tượng Disconnected Có thể chọn dùng Disconnected Provider Dùng cả 2 OleDbDataAdapter OleDb .Net Data Provider cho OleDb
Kiến trúc ADO.NET .NET Data Providers Các loại .Net Data Provider Tên Data Source Provider Namespace MS SQL Server 7.0 trở lên System.Data.SqlClient Oracle 8.1.6 trở lên System.Data.OracleClient ODBC System.Data.ODBC OleDb System.Data.OleDb XML trong SQL Server System.Data.SqlXml SQL Server .NET Data Provider OLE DB .NET Data Provider ODBC .NET Data Provider
Kiến trúc ADO.NET .NET Data Providers Chọn lựa .NET Data Provider SQL Server .NET Data Provider SQL Server version 7.0 trở lên Oracle .NET Data Provider Oracle 8.1.6 trở lên OLE DB .NET Data Provider SQL Server 6.5, Microsoft Access, Oracle version < 8.1.6, những data sources có OLE DB providers ODBC .NET Data Provider Dùng cho các data sources chỉ hổ trợ ODBC drivers
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả Bước 1: Thiết lập Data Source Dùng Data Source là SQL Server 2005 Tên CSDL: StarterDB Tên Table: TableName Create Table TableName ( IDName int primary key, ValueName varchar(100) ) Go Insert into TableName values(‘1’, ‘Hello’) Go
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả Bước 2: Tạo ứng dụng Windows Forms Tên ứng dụng: VDKeoTha Mở form Form1 trong Design mode Bước 3: Mở cửa sổ Data Source Chọn Data Show Data Sources Trong cửa số Data Source: Click vào liên kết Add New Data Source
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả Bước 4: Chọn loại Data Source Chọn Database Click nút Next
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả Bước 5: Thiết lập thông tin kết nối Click vào nút New Connection Chọn Microsoft SQL Server Click nút “Continue”
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả Điền các thông tin về CSDL Click Test Connection để kiểm tra thông tin nhập vào Click OK 2 lần để chấp nhận Data Source
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả Thông tin kết nối được lưu trong 1 chuỗi kết nối (Connection string)
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả Bước 6: Chọn lưu chuỗi kết nối
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả Bước 7: Chọn các đối tượng trong CSDL Chọn các bảng, các cột Click nút Finish
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả Bước 8: Chọn các hiển thị dữ liệu trên Form Lúc này một data source có tên StarterDataSet được thêm vào ứng dụng Click nút Drop-Down kế bảng TableName Chọn DataGridView
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả Bước 9: Kéo và Thả Kéo bảng TableName vào trong Form1 Thao tác trên sinh ra một số controls
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả Một số code do IDE sinh ra Chuỗi kết nối trong file app.config
Kiến trúc ADO.NET Ví dụ: Phương pháp kéo thả Code trong form
Kiến trúc ADO.NET Ví dụ: Phương pháp lai Phương pháp lai: Sử dụng drap and drop – tự mình viết thêm code Các bước tiến hành Bước 1: Tạo ứng dụng Bước 2: Dùng phương pháp kéo thả để thêm 1 data source vào ứng dụng Bước 3: Viết code
Kiến trúc ADO.NET Ví dụ: Phương pháp lai
Kiến trúc ADO.NET Ví dụ: Phương pháp tự viết code Bước 1: Tạo kết nối Bước 2: Tạo command chứa câu SQL Bước 3: Mở kết nối Bước 4: Chạy command Bước 5: Đóng kết nối Bước 6: Hiện dữ liệu
Kiến trúc ADO.NET Ví dụ: Phương pháp tự viết code
Tóm tắt chương 5 ADO.NET là thư viện giúp việc kết nối giữa ứng dụng và data source. Thư viện này nằm trong System.Data ADO.NET gồm 2 phần Disconnected Connected Phần Disconnected sử dụng phần Connected để kết nối với data source Một số tiếp cận viết code ADO.NET Phương pháp Drap-and-drop Phương pháp Tự viết code Phương pháp Lai