C4W - 1
CNPM
Khoa CNTT
Phạm Hoàng Hải
LẬP TRÌNH KẾT NỐI CSDL
ADO.NET
C4W - 2
CNPM
Khoa CNTT
Phạm Hoàng Hải
1. NỘI DUNG
Tổng quan về ADO.Net
Mô hình kết nối
Mô hình phi kết nối
C4W - 3
CNPM
Khoa CNTT
Phạm Hoàng Hải
2. TỔNG QUAN VỀ ADO.NET
Các thế hệ của lập trình kết nối CSDL
C4W - 4
CNPM
Khoa CNTT
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
C4W - 5
CNPM
Khoa CNTT
Phạm Hoàng Hải
2. 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
Chương trình
CSDL, XML
…
Thêm/xóa/sửa dữ liệu
Đọc dữ liệu
C4W - 6
CNPM
Khoa CNTT
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
C4W - 7
CNPM
Khoa CNTT
Phạm Hoàng Hải
2. TỔNG QUAN VỀ ADO.NET
ADO vs ADO.Net
C4W - 8
CNPM
Khoa CNTT
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
Đòi hỏi kết nối chuẩn COM và
Windows
Xử lý kết nối CSDL qua Internet khó
khăn và không tốt.
ADO.Net
Tích hợp chặt chẽ với XML
Làm việc tốt trên môi trường Internet.
ADO.Net là sự cải tiến của ADO
Khác biệt nhau ở mô hình (COM vs
XML)
Giống nhau về các chức năng.
C4W - 9
CNPM
Khoa CNTT
Phạm Hoàng Hải
2. TỔNG QUAN VỀ ADO.NET
ADO vs ADO.Net
Khác biệt
về mô hình
Thuận lợi/khó
khăn kết nối
Internet
C4W - 10
CNPM
Khoa CNTT
Phạm Hoàng Hải
2. TỔNG QUAN VỀ ADO.NET
.Net DATA PROVIDER
.NET Data Provider
Dùng để kết nối đến CSDL, thực hiện
các câu lệnh, và nhận kết quả trả về.
Hiện có 3 loại data provider chính
Application
ODBC Driver
ODBC
RDBMS
ODBC
OLE DB
RDBMS
.NET Data Provider
Connection
Command
Data Reader
Data Adapter
OLE DB
OLE DB Provider
SQL
Server
SQL SERVER
SQL Provider
C4W - 11
CNPM
Khoa CNTT
Phạm Hoàng Hải
2. TỔNG QUAN VỀ ADO.NET
CÁC LỚP ĐỐI TƯỢNG TRONG
ADO.NET
.NET Data Provider
Các thành phần của .NET Data
Provider
C4W - 12
CNPM
Khoa CNTT
Phạm Hoàng Hải
2. TỔNG QUAN VỀ ADO.NET
CÁC LỚP ĐỐI TƯỢNG TRONG
ADO.NET
Connection: Là đối tượng có nhiệm vụ
thực hiện nhiệm vụ kết nối đến CSDL
Command: Dùng để thực hiện cá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
quả trả về từ đối tượng Command
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ớ
C4W - 13
CNPM
Khoa CNTT
Phạm Hoàng Hải
3. 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
C4W - 14
CNPM
Khoa CNTT
Phạm Hoàng Hải
3. MÔ HÌNH KẾT NỐI
CONNECTED MODEL
Kết nối vào CSDL
Thực hiện lệnh
Thêm/Xóa/Sửa dữ liệu
Đọc dữ liệu từ CSDL
Chương trình
Connection
Command
DataReader
C4W - 15
CNPM
Khoa CNTT
Phạm Hoàng Hải
VÍ DỤ
Xây dựng ứng dụng QLHS
Yêu cầu : Tiếp nhận học sinh
C4W - 16
CNPM
Khoa CNTT
Phạm Hoàng Hải
3. MÔ HÌNH KẾT NỐI
CONNECTED MODEL
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
dữ 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
C4W - 17
CNPM
Khoa CNTT
Phạm Hoàng Hải
1/18/2011 Khoa CNTT -
ĐH KHTN
17
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
C4W - 18
CNPM
Khoa CNTT
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ương
thức Open, có thể xem đã kết nối
thành công hay không thông qua
thuộc tính State của Connection.
Ví dụ:
if (con.State.ToString() = "Open" )
C4W - 19
CNPM
Khoa CNTT
Phạm Hoàng Hải
3. MÔ HÌNH KẾT NỐI
CONNECTED MODEL
CONNECTION
Đóng kết nối: Thi hành phương thức
Close() để đóng kết nối
Để tránh lỗi ta nên kiểm tra trạng thái
kết nối
Ví dụ:
If (con.State.ToString() == "Open")
con.Close();
C4W - 20
CNPM
Khoa CNTT
Phạm Hoàng Hải
3. MÔ HÌNH KẾT NỐI
CONNECTED MODEL
COMMAND
Command: Thực hiện 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 sẽ thực hiện
thao tác
CommandText: xác định thao tác cần thực
hiện
Parameters: xác định các tham số lệnh
Phương thức quan trọng
ExecuteReader: phù hợp lệnh Select trả ra
1 bảng dữ liệu
ExecuteScalar: phù hợp lệnh Select trả ra 1
giá trị
ExecuteNonQuery: phù hợp lệnh Insert,
Delete, Update
C4W - 21
CNPM
Khoa CNTT
Phạm Hoàng Hải
3. 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;
C4W - 22
CNPM
Khoa CNTT
Phạm Hoàng Hải
3. MÔ HÌNH KẾT NỐI
CONNECTED MODEL
COMMAND
Ví dụ
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = connect;
cmd.CommandText = "insert into Hocsinh
values(@Ma,@HoTen,@Diachi,@NgaySinh,@Toan,@Van)“;
OleDbParameter para =
cmd.Parameters.Add("@Ma",OleDbType.Integer)
para.Value=1;
para=cmd.Parameters.Add("@HoTen",OleDbType.VarWChar)
para.Value="Lê Văn A“;
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();
C4W - 23
CNPM
Khoa CNTT
Phạm Hoàng Hải
3. MÔ HÌNH KẾT NỐI
CONNECTED MODEL
READER
Reader: Thực hiện lệnh
Đọc dữ liệu từ CSDL
Dùng lệnh ExecuteReader hoặc
ExecuteScalar
Lớp XXXDataReader
Read
GetXXX
IsDBNull
Book
ID
BookNam
e
Author
1 Book 1 Author
1
2 Book 2 Author
2
3 Book3 Author
3
Dữ liệu chỉ
đọc theo
chiều tiến
(Readonly)
C4W - 24
CNPM
Khoa CNTT
Phạm Hoàng Hải
3. MÔ HÌNH KẾT NỐI
CONNECTED MODEL
READER
Reader: Thực hiện lệnh
Đọc dữ liệu từ CSDL
Ví dụ
OleDbDataReader rd = cmd.ExecuteReader();
while (rd.Read())
{
if (!rd.IsDBNull(3))
Console.WriteLine(rd.GetDateTime(3));
}
C4W - 25
CNPM
Khoa CNTT
Phạm Hoàng Hải
4. MÔ HÌNH PHI KẾT NỐI
DISCONNECTED MODEL
Chương trình
DataAdapter