Professional Documents
Culture Documents
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 4
ADO.NET
ADO.NET hỗ trợ các lập trình viên kết nối với hệ quản trị
CSDL như SQL Server, Microsoft Access, Oracle…
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 5
Tính năng của ADO.NET
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 6
Kiến trúc không kết nối
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 7
Các thành phần chính của ADO.NET
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 8
Data provider
Data provider cung cấp các lớp để tương tác với CSDL
Data provider gồm 4 thành phần chính
Connection: kết nối với CSDL
Command: thực thi các lệnh sql để lấy dữ liệu từ CSDL
hoặc thay đổi CSDL
DataReader: đọc dữ liệu tuần tự từ CSDL
DataAdapter: lấy dữ liệu từ CSDL lưu vào dataset và cập
nhật CSDL
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 9
Dataset
Ví dụ thực tiễn
Vấn đề: Một ngân hàng đa quốc gia có rất nhiều chi
nhánh. Giả sử một chi nhánh ở Việt Nam muốn truy cập
thông tin.
Giải pháp: Lấy thông tin cần thiết và lưu vào máy cục bộ
dưới dạng dataset
Dataset là bản sao của CSDL hay một phần CSDL trên
bộ nhớ
DataSet Hỗ trợ kiến trúc không kết nối
Kết nối đến CSDL chỉ được mở khi lấy dữ liệu về dataset
và cập nhật dữ liệu trở lại CSDL
Mọi thao tác sẽ được thực hiện trên DataSet
DataSet không phụ thuộc vào loại CSDL
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 10
DataSet
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 11
Kiến trúc không kết nối
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 12
Các loại Data provider
Các data provider được đặt trong các namespace khác nhau
Provider Namespace
SQL Server System.Data.SqlClient
OLE DB System.Data.OleDb
ODBC System.Data.Odbc
Oracle System.Data.OracleClient
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 14
SqlConnection
Thực hiện kết nối với CSDL
Phương thức khởi tạo
new SqlConnection()
new SqlConnection(chuỗi-kết-nối)
Thuộc tính và phương thức
Thuộc tính/Phương thức Mô tả
ConnectionString Cung cấp thông tin để truy cập đến CSDL SQL Server
Open() Mở kết nối
Close() Đóng kết nối
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 16
SqlDataAdapter
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 17
SqlDataAdapter
Phương thức
Phương thức Mô tả
Fill (dataset) Lấy dữ liệu đổ vào dataset
Update(dataset) Cập nhật những dữ liệu thay
đổi trên dataset lên CSDL
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 18
Demo thao tác với
dữ liệu bằng kiến trúc không kết nối
Sử dụng phương thức DataAdapter để fill Dataset
Đọc dữ liệu vào form từ Dataset
Thay đổi dữ liệu trên Dataset
Update lại dữ liệu trên CSDL
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 19
Các bước thực hiện Lập trình cơ sở dữ liệu
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 20
Demo load dữ liệu vào ListView
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 21
Demo hiển thị dữ liệu
khi một dòng trên ListView được chọn
Lập trình với CSDL - ADO.Net & Kiến trúc không kết nối 22
ỨNG DỤNG
GỒM NHIỀU FORM
Có thể thêm một form mới hoặc một form có sẵn vào
Project
Khi ứng dụng nhiều form chạy, theo mặc định ứng dụng
sẽ tải form được tạo đầu tiên trước
Đối với ứng dụng nhiều form, với form này gọi form kia.
Có thể lập trình viên muốn chạy từng form để kiểm thử
từng form
Thông tin về form được tải đầu tiên của project được lưu
trong file Program.cs
Demo hiển thị form Payment khi người dùng nhấn vào
button Select Payment trên form Customer
Form cung cấp thuộc tính Tag để lưu đối tượng chứa dữ
liệu của form
Cũng có thể tự khai báo thuộc tính bất kỳ để lưu dữ liệu
cho form và truyền cho form khác bằng cách truy cập
đến thuộc tính đó trên form khác
Sự kiện xẩy ra khi người dùng nhấn vào button gọi đến
phương thức Close của form nhưng trước khi form được
đóng thực sự
Sự kiện này thường được dùng để ngăn người dùng
đóng form chứa dữ liệu chưa được lưu
private void frmCustomer_FormClosing(object sender,
FormClosingEventArgs e)
{
//Viết mã ở đây
}
Form chính
Đóng tất cả các form (khi người dùng nhấn vào button
Exit của form chính)
private void btnExit_Click(object sender, System.EventArgs e)
{
Application.Exit();
}
Đóng từng form (khi người dùng nhấn vào button Close
của từng form)
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
Có thể sử dụng điều khiển Tab thay cho kiểu giao diện
SDI
Mỗi điều khiển Tab có nhiều page, có thể thêm và xóa các
page này
Sử dụng thuộc tính SelectedIndex để xác định tab nào
đang được focus
Lập trình giao diện - ứng dụng gồm nhiều form 41
Demo sử dụng điều khiển Tab
Viết code thiết lập thuộc tính MdiParent chỉ ra form cha
cho form con
Đoạn mã này mở form FutureValue khi người dùng nhấn
vào menu New Future Value trên form cha
ToolStrip ToolStrip
//Hoặc là
Thiết lập giá trị cho thuộc tính này cho mỗi điều khiển hoặc
cho form
Lập trình giao diện - ứng dụng gồm nhiều form 56
Tổng kết bài học
ADO.NET gồm hai phần data provider và dataset
.NET data provider cung cấp các lớp để kết nối, thực thi lệnh SQL
và lấy kết quả trả về
Dataset lưu trữ bản sao của CSDL hoặc một phần CSDL trên bộ
nhớ. Cung cấp các phương thức cho phép ứng dụng thao tác với
bản sao
Data provider gồm 4 thành phần chính là Connection,
Command, DataReader và DataAdapter
Command và DataReader thực hiện theo kiến trúc kết nối, nên
phải mở và đóng kết nối trước vào sau khi thao tác
DataAdapter thực hiện theo cơ chế không kết nối, đối tượng này
tự động mở và đóng kết nối khi cần thiết
Tổng kết bài học
Một ứng dụng có thể bao gồm nhiều form. Từ một form
có thể mở form mới theo kiểu form thông thường hoặc
dialog
Đối với form dialog, khi mở form có giá trị trả về kiểu
DialogResult cho biết thao tác của người dùng trên form
Ứng dụng SDI gồm nhiều form độc lập với nhau, mỗi
form có thể có menu và toolbar riêng và mỗi form chạy
trên một cửa sổ riêng
Ứng dụng SDI này cần có một form chính cung cấp truy
cập đến các form khác của ứng dụng
Ứng dụng MDI là giao diện có một form cha chứa nhiều
form con