TỔNG QUAN VỀ ADO.NET¨ Các thế hệ của lập trình kết nối CSDL... TỔNG QUAN VỀ ADO.NET MỤC TIÊU BÀI HỌC ¨ Tìm hiểu về ADO.Net ¨ Các mô hình kết nối CSDL Connected & Disconnected ¨ Dùng VS.N
Trang 1LẬP TRÌNH KẾT NỐI CSDL
ADO.NET
Trang 2LTUDQL - 2 Th.S Phạm Hoàng Hải
Trang 32 TỔNG QUAN VỀ ADO.NET
¨ Các thế hệ của lập trình kết nối CSDL
Trang 4LTUDQL - 4 Th.S Phạm Hoàng Hải
2 TỔNG QUAN VỀ ADO.NET
MỤC TIÊU BÀI HỌC
¨ Tìm hiểu về ADO.Net
¨ Các mô hình kết nối CSDL
(Connected & Disconnected)
¨ Dùng VS.Net (VB.Net) xây dựng ứng dụng kết nối CSDL ADO.Net
ADO.NET
Trang 52 TỔNG QUAN VỀ ADO.NET
GIỚI THIỆU
¨ ADO.NET là một tập các lớp thư viện
được sử dụng để truy xuất dữ liệu
¨ Nằm trong bộ thư viện các lớp cơ sở
của Net Framework
Thêm/xóa/sửa dữ liệu
Đọc dữ liệu
Trang 6LTUDQL - 6 Th.S Phạm Hoàng Hải
2 TỔNG QUAN VỀ ADO.NET
VỊ TRÍ CỦA ADO.NET
¨ ADO.NET là thành phần nội tại của Net Framework à có thể sử dụng trong các ngôn ngữ hỗ trợ Net (C#, VB.Net, )
¨ Các lớp ADO.Net đặt trong
System.Data
¨ Chức năng và cách sử dụng hoàn toàn giống nhau
ASP.NET Windows Forms
Drawing XML Data
Comman language Runtime
System Services
ADO.NET Class Framework
Trang 72 TỔNG QUAN VỀ ADO.NET
ADO vs ADO.Net
Trang 8LTUDQL - 8 Th.S Phạm Hoàng Hải
2 TỔNG QUAN VỀ ADO.NET
ADO vs ADO.Net
¨ ADO kết nối CSDL tốt, nhưng
¨ ADO.Net là sự cải tiến của ADO
XML)
Trang 10LTUDQL - 10 Th.S Phạm Hoàng Hải
2 TỔNG QUAN VỀ ADO.NET
.Net DATA PROVIDER
¨ NET Data Provider
OLE DB RDBMS
.NET Data Provider
Trang 112 TỔNG QUAN VỀ ADO.NET CÁC LỚP ĐỐI TƯỢNG TRONG
ADO.NET
¨ NET Data Provider
Provider
Trang 12LTUDQL - 12 Th.S Phạm Hoàng Hải
2 TỔNG QUAN VỀ ADO.NET CÁC LỚP ĐỐI TƯỢNG TRONG
¨ DataAdapter: Có chức năng như một cầu nối giữa nguồn (tệp) dữ liệu và
các bảng được cached trong bộ nhớ
Trang 133 MÔ HÌNH KẾT NỐI - PHI KẾT
NỐI
¨ Mô hình kết nối (Connected Model)
¨ Mô hình phi kết nối (Disconnected
Model)
Chương trình
Chương trình
Trang 14LTUDQL - 14 Th.S Phạm Hoàng Hải
3 MÔ HÌNH KẾT NỐI CONNECTED MODEL
DataReader
Trang 15VÍ DỤ
¨ Xây dựng ứng dụng QLHS
Trang 16LTUDQL - 16 Th.S Phạm Hoàng Hải
3 MÔ HÌNH KẾT NỐI CONNECTED MODEL
Trang 17LTUDQL - 17 Th.S Phạm Hoàng Hải
3 MÔ HÌNH KẾT NỐI CONNECTED MODEL
CONNECTION
¨ Kết nối vào CSDL
• Ví dụ: kết nối vào Access
OleDbConnection cnn = new OleDbConnection();
cnn.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0;
Data Source=hocsinh.mdb“; cnn.Open();
// Các lệnh cần thực hiện
Trang 18LTUDQL - 18
Th.S Phạm Hoàng Hải
18
3 MÔ HÌNH KẾT NỐI CONNECTED MODEL
CONNECTION
¨ Kiểm tra kết nối: Sau khi gọi phươngthức Open, có thể xem đã kết nốithành công hay không thông quathuộc tính State của Connection
• Ví dụ:
if (con.State.ToString() = "Open" )
Trang 193 MÔ HÌNH KẾT NỐI CONNECTED MODEL
Trang 20LTUDQL - 20 Th.S Phạm Hoàng Hải
3 MÔ HÌNH KẾT NỐI CONNECTED MODEL
v CommandText : xác định thao tác cần thực hiện
vExecuteNonQuery : phù hợp lệnh Insert, Delete, Update
Trang 213 MÔ HÌNH KẾT NỐI CONNECTED MODEL
COMMAND
¨ Các cách để tạo Command
• Tạo Command từ phương thức tạo dựng
OleDbCommand com = new OleDbCommand("select
* from sinhvien", con);
• Tạo command từ phương thức
CreateCommand của đối tượng Connection
OleDbCommand com = con.CreateCommand();
command.CommandText = "select * from sinhvien“;
• Tạo Command bằng cách đặt các thuộc tính sau khi khai báo
OleDbCommand com =new OleDbCommand();
com.CommandType = CommandType.Text;
com.CommandText ="Select * from sinhvien";
com.Connection = con;
Trang 22LTUDQL - 22 Th.S Phạm Hoàng Hải
3 MÔ HÌNH KẾT NỐI CONNECTED MODEL
para=cmd.Parameters.Add("@Diachi",OleDbType.VarWChar) para.Value="Nguyễn Văn Cừ“;
para = cmd.Parameters.Add("@Ngaysinh", OleDbType.Date) para.Value = new DateTime(1982,10,1);
para=cmd.Parameters.Add("@Toan",OleDbType.Integer); para.Value=5;
para=cmd.Parameters.Add("@Van",OleDbType.Integer);
para.Value=7;
cmd.ExecuteNonQuery();
Trang 233 MÔ HÌNH KẾT NỐI CONNECTED MODEL
BookNam e
Trang 24LTUDQL - 24 Th.S Phạm Hoàng Hải
3 MÔ HÌNH KẾT NỐI CONNECTED MODEL
Trang 254 MÔ HÌNH PHI KẾT NỐI DISCONNECTED MODEL
Chương trình
DataAdapter
Trang 26LTUDQL - 26 Th.S Phạm Hoàng Hải
4 MÔ HÌNH PHI KẾT NỐI DISCONNECTED MODEL
Trang 274 MÔ HÌNH PHI KẾT NỐI
DISCONNECTED MODEL
¨ DataSet
kho chứa các bảng (Table) Người sử dụng có thể thay đổi dữ liệu trong các bảng này và khi muốn cập nhật vào cơ
sở dữ liệu thì thi hành phương thức Update của đối tượng DataAdapter.
DataAdapter Fill vào hoặc cũng có thể
là các bảng được tạo thành từ đối
tượng DataTable.
hợp Tables của lớp DataSet
Trang 28LTUDQL - 28 Th.S Phạm Hoàng Hải
4 MÔ HÌNH PHI KẾT NỐI
Trang 294 MÔ HÌNH PHI KẾT NỐI DISCONNECTED MODEL
Trang 30LTUDQL - 30 Th.S Phạm Hoàng Hải
4 MÔ HÌNH PHI KẾT NỐI
DISCONNECTED MODEL
• RowState : trạng thái của mẫu tin
(Added, Modified, Deleted,
Trang 314 MÔ HÌNH PHI KẾT NỐI DISCONNECTED MODEL
• ColumnName : tên cột.
• DataType : kiểu dữ liệu cột.
Trang 32LTUDQL - 32 Th.S Phạm Hoàng Hải
4 MÔ HÌNH PHI KẾT NỐI
DISCONNECTED MODEL
SelectCommand
UpdateCommand InsertCommand
DeleteCommand
DataAdapter
Data Source
DataSet
vFill: dùng SelectCommand lấy dữ liệu
từ Data Source đổ vào DataSet
vUpdate: dùng InsertCommand,UpdateCommand và DeleteCommandcập nhật dữ liệu trong DataSet vàoData Source
Trang 334 MÔ HÌNH PHI KẾT NỐI DISCONNECTED MODEL
Trang 34LTUDQL - 34 Th.S Phạm Hoàng Hải
4 MÔ HÌNH PHI KẾT NỐI
DISCONNECTED MODEL
OleDbDataAdapter da = new OleDbDataAdapter(
"select * from HocSinh", cnn);
DataSet dsHocSinh = new DataSet();
}
Trang 354 MÔ HÌNH PHI KẾT NỐI
Trang 36LTUDQL - 36 Th.S Phạm Hoàng Hải
4 MÔ HÌNH PHI KẾT NỐI
DISCONNECTED MODEL
¨ Cập nhật dữ liệu xuống CSDL
OleDbCommandBuilder buider =
new OleDbCommandBuilder(da); da.Update(dsHocSinh, "HocSinh");
Trang 375 CÂU HỎI