Tải bản đầy đủ (.pdf) (37 trang)

Chuong 03 ado net

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.73 MB, 37 trang )

Khoa CNTT

CNPM

LẬP TRÌNH KẾT NỐI CSDL
ADO.NET

Th.S Phạm Hồng Hải

LTUDQL - 1


Khoa CNTT

CNPM

1. NI DUNG
ă

Tng quan v ADO.Net

ă

Mụ hỡnh kt ni

ă

Mụ hình phi kết nối

Th.S Phạm Hồng Hải


LTUDQL - 2


Khoa CNTT

CNPM

2. TNG QUAN V ADO.NET
ă

Cỏc th h ca lp trình kết nối CSDL

Th.S Phạm Hồng Hải

LTUDQL - 3


Khoa CNTT

CNPM

2. TNG QUAN V ADO.NET
MC TIấU BI HC
ă
ă
ă

Tỡm hiu 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

Th.S Phạm Hoàng Hải

LTUDQL - 4


Khoa CNTT

CNPM

2. TNG QUAN V ADO.NET
GII THIU
ă

ADO.NET l mt tp các lớp thư viện
được sử dụng để truy xuất dữ liu
Thờm/xúa/sa d liu
c d liu

Chng trỡnh

ă

CSDL, XML

Nm trong b th viện các lớp cơ sở

của .Net Framework

Th.S Phạm Hoàng Hải

LTUDQL - 5


Khoa CNTT

CNPM

2. TNG QUAN V ADO.NET
V TR CA 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, ...)
ASP.NET

Windows Forms

Class Framework
Drawing

XML

ADO.NET


Data

Comman language Runtime
System Services

ă

Cỏc lp ADO.Net t trong
System.Data

ă

Chc nng v cách sử dụng hoàn
toàn giống nhau.
Th.S Phạm Hoàng Hải

LTUDQL - 6


Khoa CNTT

CNPM

2. TỔNG QUAN VỀ ADO.NET
ADO vs ADO.Net

Th.S Phạm Hoàng Hải

LTUDQL - 7



Khoa CNTT

CNPM

2. TNG QUAN V ADO.NET
ADO vs ADO.Net
ă

ă

ă

ADO kt ni 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.

Th.S Phạm Hồng Hải

LTUDQL - 8


Khoa CNTT

CNPM

2. TỔNG QUAN VỀ ADO.NET
ADO vs ADO.Net

Khác biệt
về mô hình
Th.S Phạm Hồng Hải

Thuận lợi/khó

khăn kết nối
Internet
LTUDQL - 9


Khoa CNTT

CNPM

2. TNG 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
ODBC

ODBC Driver
OLE DB Provider

OLE DB
RDBMS


SQL Provider

Command

OLE DB

Application

Connection

ODBC
RDBMS

SQL SERVER

.NET Data Provider

Data Reader

Data Adapter
Th.S Phạm Hoàng Hải

SQL
Server
LTUDQL - 10


Khoa CNTT

CNPM


2. TNG QUAN V ADO.NET
CC LP I TNG TRONG
ADO.NET
ă

.NET Data Provider


Các thành phần của .NET Data
Provider

Th.S Phạm Hồng Hải

LTUDQL - 11


Khoa CNTT

CNPM

2. TNG QUAN V ADO.NET
CC LP I TNG TRONG
ADO.NET
ă

Connection: Là đối tượng có nhiệm vụ
thực hiện nhiệm vụ kết ni n CSDL

ă


Command: Dựng thc hin cỏc
cõu lnh SQL thao tỏc vi CSDL nh:
Insert, Update, Select, Delete

ă

DataReader: Dựng ún nhn kt
qu tr v t i tng 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ớ

Th.S Phạm Hoàng Hải

LTUDQL - 12


Khoa CNTT

CNPM

3. Mễ HèNH KT NI - PHI KT
NI
ă

Mụ hỡnh kt ni (Connected Model)


Chng trỡnh
ă

Mụ hỡnh phi kt ni (Disconnected
Model)

Chng trình

Th.S Phạm Hồng Hải

LTUDQL - 13


Khoa CNTT

CNPM

3. Mễ HèNH KT NI
CONNECTED MODEL
ă

Kt ni vo CSDL

ă

Thc hiện lệnh


Thêm/Xóa/Sửa dữ liệu




Đọc dữ liệu từ CSDL

Command
Connection
Chương trình

DataReader

Th.S Phạm Hoàng Hải

LTUDQL - 14


Khoa CNTT

CNPM

V D
ă

Xõy dng ng dng QLHS
ã

Yờu cu : Tip nhận học sinh

Th.S Phạm Hoàng Hải


LTUDQL - 15


Khoa CNTT

CNPM

3. Mễ HèNH KT NI
CONNECTED MODEL
CONNECTION
ă

Connection: Kt ni vo CSDL


Các lớp phụ trách kết nối
vODBCConnection
vOleDBConnection
vSqlConnection
vOracleConnection



Thuộc tính quan trọng
vConnectionString: xác định nguồn
dữ liệu cần kết nối



Phương thức quan trọng

vOpen: mở kết nối
vClose: đóng kết nối

Th.S Phạm Hồng Hải

LTUDQL - 16


Khoa CNTT

CNPM

3. Mễ HèNH KT NI
CONNECTED MODEL
CONNECTION
ă

Kt ni vo 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

Th.S Phạm Hoàng Hải


Khoa CNTT -

10/17/17
17

LTUDQL - 17


Khoa CNTT

CNPM

3. Mễ HèNH KT NI
CONNECTED MODEL
CONNECTION
ă

Kim tra kt ni: 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" )

LTUDQL - 18

Th.S Phạm Hoàng Hải


18


Khoa CNTT

CNPM

3. Mễ HèNH KT NI
CONNECTED MODEL
CONNECTION
ă

úng kt ni: Thi hnh phng thc
Close() úng kt ni

ă

trỏnh li ta nên kiểm tra trạng thái
kết nối


Ví dụ:

If (con.State.ToString() == "Open")
con.Close();

Th.S Phạm Hoàng Hải

LTUDQL - 19



Khoa CNTT

CNPM

3. Mễ HèNH KT NI
CONNECTED MODEL
COMMAND
ă

Command: Thc hin lnh
ã

Cỏc lớp phụ trách
v ODBCCommand
v OleDBCommand
v SqlCommand
v OracleCommand



Thuộc tính quan trọng
v Connection: xác định CSDL sẽ thực hiện
thao tác
v CommandText: xác định thao tác cần thực
hiện
v Parameters: xác định các tham số lệnh




Phương thức quan trọng
v ExecuteReader: phù hợp lệnh Select trả ra
1 bảng dữ liệu
v ExecuteScalar: phù hợp lệnh Select trả ra 1
giá trị
v ExecuteNonQuery: phù hợp lệnh Insert,
Delete, Update

Th.S Phạm Hoàng Hải

LTUDQL - 20


Khoa CNTT

CNPM

3. Mễ HèNH KT NI
CONNECTED MODEL
COMMAND
ă

Cỏc cỏch to 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;

Th.S Phạm Hoàng Hải

LTUDQL - 21


Khoa CNTT

CNPM

3. Mễ HèNH KT NI
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();

Th.S Phạm Hoàng Hải

LTUDQL - 22


Khoa CNTT

CNPM

3. Mễ HèNH KT NI

CONNECTED MODEL
READER
ă

Reader: Thc hin lnh
ã
n
n

c dữ liệu từ CSDL
Dùng lệnh ExecuteReader hoặc
ExecuteScalar
Lớp XXXDataReader
u Read
Book BookNam Author
u GetXXX
ID e
u IsDBNull

Dữ liệu chỉ
đọc theo
chiều tiến
(Readonly)
Th.S Phạm Hoàng Hải

1

Book 1

Author

1

2

Book 2

Author
2

3

Book3

Author
3

LTUDQL - 23


Khoa CNTT

CNPM

3. Mễ HèNH KT NI
CONNECTED MODEL
READER
ă

Reader: Thc hin lnh
ã


c dữ liệu từ CSDL



Ví dụ

OleDbDataReader rd = cmd.ExecuteReader();
while (rd.Read())
{
if (!rd.IsDBNull(3))
Console.WriteLine(rd.GetDateTime(3));
}

Th.S Phạm Hoàng Hải

LTUDQL - 24


Khoa CNTT

CNPM

4. MƠ HÌNH PHI KẾT NỐI
DISCONNECTED MODEL

DataAdapter
Chương trình

Th.S Phạm Hoàng Hải


LTUDQL - 25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×