Data Access and Viewing with .NET
Data Access and Viewing with .NET
-
-
Editor:
Editor:
Đo
Đo
à
à
n Quang Minh
n Quang Minh
1
1
C# and .NET Framework
C# and .NET Framework
B
B
à
à
i 6:
i 6:
Data Access and Viewing
Data Access and Viewing
with .NET
with .NET
Đo
Đo
à
à
n Quang Minh
n Quang Minh
http
http
://www.VTPortal.net
://www.VTPortal.net
Last update:
Last update:
30. December 2006
30. December 2006
Data Access and Viewing with .NET
Data Access and Viewing with .NET
-
-
Editor:
Editor:
Đo
Đo
à
à
n Quang Minh
n Quang Minh
2
2
M
M
ụ
ụ
c l
c l
ụ
ụ
c
c
ADO.NET Overview
ADO.NET Overview
Using Database Connections
Using Database Connections
Commands
Commands
Quick Data Access: The Data Reader
Quick Data Access: The Data Reader
Working with
Working with
DataSet
DataSet
Viewing .NET data
Viewing .NET data
Example
Example
Data Access and Viewing with .NET
Data Access and Viewing with .NET
-
-
Editor:
Editor:
Đo
Đo
à
à
n Quang Minh
n Quang Minh
3
3
ADO.NET Overview
ADO.NET Overview
ADO.NET l
ADO.NET l
à
à
g
g
ì
ì
–
–
ADO
ADO
-
-
Microsoft
Microsoft
's
's
ActiveX Data Objects: t
ActiveX Data Objects: t
hư vi
hư vi
ệ
ệ
n c
n c
á
á
c cho ph
c cho ph
é
é
p truy c
p truy c
ậ
ậ
p
p
v
v
à
à
x
x
ử
ử
lý CSDL.
lý CSDL.
–
–
ADO c
ADO c
ó
ó
m
m
ộ
ộ
t s
t s
ố
ố
h
h
ạ
ạ
n ch
n ch
ế
ế
: luôn luôn gi
: luôn luôn gi
ữ
ữ
k
k
ế
ế
t n
t n
ố
ố
i, ch
i, ch
ỉ
ỉ
l
l
à
à
m vi
m vi
ệ
ệ
c v
c v
ớ
ớ
i CSDL...
i CSDL...
–
–
ADO.NET: l
ADO.NET: l
à
à
m vi
m vi
ệ
ệ
c v
c v
ớ
ớ
i c
i c
á
á
c đ
c đ
ố
ố
i tư
i tư
ợ
ợ
ng d
ng d
ữ
ữ
li
li
ệ
ệ
u, h
u, h
ỗ
ỗ
tr
tr
ợ
ợ
m
m
ạ
ạ
nh m
nh m
ẽ
ẽ
SQL
SQL
Server,
Server,
đ
đ
ồ
ồ
ng th
ng th
ờ
ờ
i h
i h
ỗ
ỗ
tr
tr
ợ
ợ
c
c
á
á
c k
c k
ế
ế
t n
t n
ố
ố
i OLE DB.
i OLE DB.
namespace
namespace
System.Data
System.Data
–
–
Đ
Đ
ể
ể
truy
truy
c
c
ậ
ậ
p
p
v
v
à
à
x
x
ử
ử
lý
lý
CSDL,
CSDL,
s
s
ử
ử
d
d
ụ
ụ
ng
ng
c
c
á
á
c
c
namespace
namespace
System.Data
System.Data
,
,
System.Data.Common
System.Data.Common
,
,
System.Data.OleDb
System.Data.OleDb
,
,
System.Data.SqlClient
System.Data.SqlClient
,
,
System.Data.SqlTypes
System.Data.SqlTypes
.
.
–
–
C
C
á
á
c
c
l
l
ớ
ớ
p
p
cơ
cơ
b
b
ả
ả
n
n
trong
trong
System.Data
System.Data
:
:
DataSet
DataSet
,
,
DataTable
DataTable
,
,
DataRow
DataRow
,
,
DataColumn
DataColumn
,
,
DataRelation
DataRelation
, Constraint
, Constraint
–
–
C
C
á
á
c
c
l
l
ớ
ớ
p
p
đ
đ
ặ
ặ
c
c
bi
bi
ệ
ệ
t
t
:
:
SqlCommand
SqlCommand
,
,
OleDbCommand
OleDbCommand
,
,
SqlCommandBuilder
SqlCommandBuilder
,
,
OleDbCommandBuilder
OleDbCommandBuilder
,
,
SqlConnection
SqlConnection
,
,
OleDbConnection
OleDbConnection
,
,
SqlDataAdapter
SqlDataAdapter
,
,
OleDbDataAdapter
OleDbDataAdapter
,
,
SqlDataReader
SqlDataReader
,
,
OleDbDataReader
OleDbDataReader
,
,
SqlParameter
SqlParameter
,
,
OleDbParameter
OleDbParameter
,
,
SqlTransaction
SqlTransaction
,
,
OleDbTransaction
OleDbTransaction
Data Access and Viewing with .NET
Data Access and Viewing with .NET
-
-
Editor:
Editor:
Đo
Đo
à
à
n Quang Minh
n Quang Minh
4
4
Using Database Connections
Using Database Connections
Mu
Mu
ố
ố
n
n
truy
truy
v
v
ấ
ấ
n
n
CSDL,
CSDL,
ch
ch
ú
ú
ng
ng
ta
ta
ph
ph
ả
ả
i
i
c
c
ó
ó
m
m
ộ
ộ
t
t
k
k
ế
ế
t
t
n
n
ố
ố
i
i
đ
đ
ế
ế
n
n
CSDL
CSDL
–
–
S
S
ử
ử
d
d
ụ
ụ
ng
ng
l
l
ớ
ớ
p
p
SqlConnection
SqlConnection
,
,
OleDbConnection
OleDbConnection
Cung
Cung
c
c
ấ
ấ
p
p
chu
chu
ỗ
ỗ
i
i
k
k
ế
ế
t
t
n
n
ố
ố
i
i
:
:
thông
thông
thư
thư
ờ
ờ
ng
ng
bao
bao
g
g
ồ
ồ
m
m
tên
tên
server,
server,
tên
tên
CSDL,
CSDL,
tên
tên
truy
truy
c
c
ậ
ậ
p
p
,
,
m
m
ậ
ậ
t
t
kh
kh
ẩ
ẩ
u
u
.
.
S
S
ử
ử
d
d
ụ
ụ
ng
ng
c
c
á
á
c
c
phương
phương
th
th
ứ
ứ
c
c
Open()
Open()
v
v
à
à
Close().
Close().
–
–
S
S
ử
ử
d
d
ụ
ụ
ng
ng
k
k
ế
ế
t
t
n
n
ố
ố
i
i
hi
hi
ệ
ệ
u
u
qu
qu
ả
ả
Đ
Đ
ó
ó
ng
ng
ngay
ngay
k
k
ế
ế
t
t
n
n
ố
ố
i
i
khi
khi
không
không
d
d
ù
ù
ng
ng
n
n
ữ
ữ
a
a
:
:
thông
thông
thư
thư
ờ
ờ
ng
ng
,
,
ch
ch
ú
ú
ng
ng
ta
ta
không
không
duy
duy
tr
tr
ì
ì
m
m
ộ
ộ
t
t
k
k
ế
ế
t
t
n
n
ố
ố
i
i
“
“
c
c
ứ
ứ
ng
ng
”
”
đ
đ
ế
ế
n
n
CSDL.
CSDL.
Khi
Khi
c
c
ầ
ầ
n
n
truy
truy
v
v
ấ
ấ
n
n
,
,
ch
ch
ú
ú
ng
ng
ta
ta
m
m
ở
ở
k
k
ế
ế
t
t
n
n
ố
ố
i
i
,
,
truy
truy
v
v
ấ
ấ
n
n
xong
xong
,
,
đ
đ
ó
ó
ng
ng
ngay
ngay
k
k
ế
ế
t
t
n
n
ố
ố
i
i
l
l
ạ
ạ
i
i
.
.
Kh
Kh
ố
ố
i
i
l
l
ệ
ệ
nh
nh
k
k
ế
ế
t
t
n
n
ố
ố
i
i
nên
nên
đ
đ
ặ
ặ
t
t
trong
trong
kh
kh
ố
ố
i
i
try
try
…
…
catch
catch
T
T
ừ
ừ
kh
kh
ó
ó
a
a
using:
using:
s
s
ử
ử
d
d
ụ
ụ
ng
ng
m
m
ộ
ộ
t
t
đ
đ
ố
ố
i
i
tư
tư
ợ
ợ
ng
ng
. Ra
. Ra
kh
kh
ỏ
ỏ
i
i
ph
ph
ạ
ạ
m
m
vi
vi
c
c
ủ
ủ
a
a
using,
using,
đ
đ
ố
ố
i
i
tư
tư
ợ
ợ
ng
ng
s
s
ẽ
ẽ
b
b
ị
ị
hu
hu
ỷ
ỷ
.
.
–
–
Transactions
Transactions
Transactions
Transactions
l
l
à
à
g
g
ì
ì
?.
?.
S
S
ử
ử
d
d
ụ
ụ
ng
ng
thông
thông
qua
qua
SqlTransaction
SqlTransaction
ho
ho
ặ
ặ
c
c
OleDbTransaction
OleDbTransaction
.
.
Data Access and Viewing with .NET
Data Access and Viewing with .NET
-
-
Editor:
Editor:
Đo
Đo
à
à
n Quang Minh
n Quang Minh
5
5
Commands
Commands
L
L
à
à
đ
đ
ố
ố
i
i
tư
tư
ợ
ợ
ng
ng
th
th
ự
ự
c
c
thi
thi
câu
câu
l
l
ệ
ệ
nh
nh
–
–
M
M
ộ
ộ
t
t
đ
đ
ố
ố
i
i
tư
tư
ợ
ợ
ng
ng
command
command
thông
thông
thư
thư
ờ
ờ
ng
ng
đư
đư
ợ
ợ
c
c
s
s
ử
ử
d
d
ụ
ụ
ng
ng
đ
đ
ể
ể
th
th
ự
ự
c
c
thi
thi
m
m
ộ
ộ
t
t
câu
câu
l
l
ệ
ệ
nh
nh
SQL
SQL
ho
ho
ặ
ặ
c
c
m
m
ộ
ộ
t
t
th
th
ủ
ủ
t
t
ụ
ụ
c
c
lưu
lưu
.
.
–
–
C
C
á
á
c
c
bư
bư
ớ
ớ
c
c
th
th
ự
ự
c
c
hi
hi
ệ
ệ
n
n
:
:
Khai
Khai
b
b
á
á
o
o
v
v
à
à
m
m
ở
ở
m
m
ộ
ộ
t
t
connection.
connection.
Khai
Khai
b
b
á
á
o
o
m
m
ộ
ộ
t
t
chu
chu
ỗ
ỗ
i
i
ch
ch
ứ
ứ
a
a
câu
câu
l
l
ệ
ệ
nh
nh
SQL
SQL
ho
ho
ặ
ặ
c
c
tên
tên
th
th
ủ
ủ
t
t
ụ
ụ
c
c
lưu
lưu
Khai
Khai
b
b
á
á
o
o
m
m
ộ
ộ
t
t
đ
đ
ố
ố
i
i
tư
tư
ợ
ợ
ng
ng
command
command
v
v
ớ
ớ
i
i
câu
câu
l
l
ệ
ệ
nh
nh
truy
truy
v
v
ấ
ấ
n
n
v
v
à
à
ngu
ngu
ồ
ồ
n
n
k
k
ế
ế
t
t
n
n
ố
ố
i
i
.
.
Ch
Ch
ỉ
ỉ
đ
đ
ị
ị
nh
nh
thu
thu
ộ
ộ
c
c
t
t
í
í
nh
nh
câu
câu
truy
truy
v
v
ấ
ấ
n
n
:
:
d
d
ạ
ạ
ng
ng
text hay
text hay
th
th
ủ
ủ
t
t
ụ
ụ
c
c
lưu
lưu
.
.
Thêm
Thêm
c
c
á
á
c
c
tham
tham
s
s
ố
ố
c
c
ủ
ủ
a
a
câu
câu
truy
truy
v
v
ấ
ấ
n
n
.
.
Th
Th
ự
ự
c
c
hi
hi
ệ
ệ
n
n
l
l
ệ
ệ
nh
nh
truy
truy
v
v
ấ
ấ
n
n
:
:
tu
tu
ỳ
ỳ
theo
theo
yêu
yêu
c
c
ầ
ầ
u
u
th
th
ự
ự
c
c
hi
hi
ệ
ệ
n
n
c
c
á
á
c
c
l
l
ệ
ệ
nh
nh
kh
kh
á
á
c
c
nhau
nhau
Data Access and Viewing with .NET
Data Access and Viewing with .NET
-
-
Editor:
Editor:
Đo
Đo
à
à
n Quang Minh
n Quang Minh
6
6
Commands
Commands
C
C
á
á
c
c
l
l
ệ
ệ
nh
nh
truy
truy
v
v
ấ
ấ
n
n
v
v
ớ
ớ
i
i
command.
command.
–
–
ExecuteNonQuery
ExecuteNonQuery
()
()
Th
Th
ự
ự
c
c
thi
thi
câu
câu
l
l
ệ
ệ
nh
nh
,
,
không
không
tr
tr
ả
ả
v
v
ề
ề
k
k
ế
ế
t
t
qu
qu
ả
ả
.
.
Thư
Thư
ờ
ờ
ng
ng
s
s
ử
ử
d
d
ụ
ụ
ng
ng
trong
trong
truy
truy
v
v
ấ
ấ
n
n
không
không
c
c
ầ
ầ
n
n
quan
quan
tâm
tâm
đ
đ
ế
ế
n
n
k
k
ế
ế
t
t
qu
qu
ả
ả
,
,
v
v
í
í
d
d
ụ
ụ
c
c
á
á
c
c
l
l
ệ
ệ
nh
nh
delete, insert, update
delete, insert, update
…
…
–
–
ExecuteReader
ExecuteReader
()
()
Tr
Tr
ả
ả
v
v
ề
ề
m
m
ộ
ộ
t
t
DataReader
DataReader
.
.
Thư
Thư
ờ
ờ
ng
ng
s
s
ử
ử
d
d
ụ
ụ
ng
ng
trong
trong
c
c
á
á
c
c
truy
truy
v
v
ấ
ấ
n
n
hi
hi
ể
ể
n
n
th
th
ị
ị
d
d
ữ
ữ
li
li
ệ
ệ
u
u
.
.
–
–
ExecuteScalar
ExecuteScalar
()
()
Tr
Tr
ả
ả
v
v
ề
ề
m
m
ộ
ộ
t
t
đ
đ
ố
ố
i
i
tư
tư
ợ
ợ
ng
ng
duy
duy
nh
nh
ấ
ấ
t
t
.
.
Thư
Thư
ờ
ờ
ng
ng
s
s
ử
ử
d
d
ụ
ụ
ng
ng
trong
trong
c
c
á
á
c
c
truy
truy
v
v
ấ
ấ
n
n
tr
tr
ả
ả
v
v
ề
ề
m
m
ộ
ộ
t
t
gi
gi
á
á
tr
tr
ị
ị
d
d
ữ
ữ
li
li
ệ
ệ
u
u
đơn
đơn
,
,
v
v
í
í
d
d
ụ
ụ
c
c
á
á
c
c
l
l
ệ
ệ
nh
nh
t
t
í
í
nh
nh
t
t
ổ
ổ
ng
ng
,
,
t
t
í
í
nh
nh
trung
trung
b
b
ì
ì
nh
nh
,
,
t
t
í
í
nh
nh
min/max
min/max
…
…
–
–
ExecuteXmlReader
ExecuteXmlReader
()
()
Tr
Tr
ả
ả
v
v
ề
ề
m
m
ộ
ộ
t
t
XmlReader
XmlReader
.
.
Thư
Thư
ờ
ờ
ng
ng
đư
đư
ợ
ợ
c
c
x
x
ử
ử
d
d
ụ
ụ
ng
ng
khi
khi
hi
hi
ể
ể
n
n
th
th
ị
ị
d
d
ữ
ữ
li
li
ệ
ệ
u
u
dư
dư
ớ
ớ
i
i
d
d
ạ
ạ
ng
ng
XML.
XML.
Nên
Nên
d
d
ù
ù
ng
ng
n
n
ế
ế
u
u
CSDL
CSDL
h
h
ỗ
ỗ
tr
tr
ợ
ợ
truy
truy
v
v
ấ
ấ
n
n
XML,
XML,
v
v
í
í
d
d
ụ
ụ
SQL Server 2000.
SQL Server 2000.
Data Access and Viewing with .NET
Data Access and Viewing with .NET
-
-
Editor:
Editor:
Đo
Đo
à
à
n Quang Minh
n Quang Minh
7
7
Commands
Commands
public class
public class
ExecuteScalarExample
ExecuteScalarExample
{
{
public static void
public static void
Main(string
Main(string
[]
[]
args
args
)
)
{
{
string source = "server=(local)
string source = "server=(local)
\
\
\
\
NetSDK
NetSDK
;" +
;" +
"
"
uid
uid
=
=
QSUser;pwd
QSUser;pwd
=
=
QSPassword
QSPassword
;" + "database=
;" + "database=
Northwind
Northwind
";
";
string select = "SELECT COUNT(*) FROM Customers";
string select = "SELECT COUNT(*) FROM Customers";
SqlConnection
SqlConnection
conn
conn
= new
= new
SqlConnection(source
SqlConnection(source
);
);
conn.Open
conn.Open
();
();
SqlCommand
SqlCommand
cmd
cmd
= new
= new
SqlCommand(select
SqlCommand(select
,
,
conn
conn
);
);
object o =
object o =
cmd.ExecuteScalar
cmd.ExecuteScalar
();
();
Console.WriteLine
Console.WriteLine
( o ) ;
( o ) ;
}
}
}
}
Data Access and Viewing with .NET
Data Access and Viewing with .NET
-
-
Editor:
Editor:
Đo
Đo
à
à
n Quang Minh
n Quang Minh
8
8
Quick Data Access: The Data Reader
Quick Data Access: The Data Reader
Data Reader
Data Reader
–
–
Ch
Ch
ỉ
ỉ
đư
đư
ợ
ợ
c
c
t
t
ạ
ạ
o
o
ra
ra
b
b
ở
ở
i
i
gi
gi
á
á
tr
tr
ị
ị
tr
tr
ả
ả
v
v
ề
ề
c
c
ủ
ủ
a
a
câu
câu
l
l
ệ
ệ
nh
nh
truy
truy
v
v
ấ
ấ
n
n
.
.
–
–
K
K
ế
ế
t
t
n
n
ố
ố
i
i
t
t
ớ
ớ
i
i
CSDL
CSDL
luôn
luôn
m
m
ở
ở
,
,
cho
cho
đ
đ
ế
ế
n
n
nh
nh
ậ
ậ
n
n
đư
đư
ợ
ợ
c
c
l
l
ệ
ệ
nh
nh
đ
đ
ó
ó
ng
ng
.
.
T
T
í
í
nh
nh
ch
ch
ấ
ấ
t
t
–
–
M
M
ộ
ộ
t
t
data reader
data reader
gi
gi
ố
ố
ng
ng
như
như
m
m
ộ
ộ
t
t
record set
record set
ch
ch
ỉ
ỉ
ti
ti
ế
ế
n
n
(forward only)
(forward only)
trong
trong
ADO.
ADO.
Ch
Ch
ỉ
ỉ
c
c
ó
ó
th
th
ể
ể
đ
đ
ọ
ọ
c
c
,
,
v
v
à
à
đi
đi
đ
đ
ế
ế
n
n
b
b
ả
ả
n
n
ghi
ghi
ti
ti
ế
ế
p
p
.
.
Không
Không
th
th
ể
ể
quay
quay
l
l
ạ
ạ
i
i
c
c
á
á
c
c
b
b
ả
ả
n
n
ghi
ghi
đã
đã
đ
đ
ọ
ọ
c
c
.
.
–
–
T
T
ố
ố
c
c
đ
đ
ộ
ộ
cao
cao
:
:
M
M
ộ
ộ
t
t
data reader
data reader
không
không
gi
gi
ữ
ữ
c
c
á
á
c
c
b
b
ả
ả
n
n
ghi
ghi
trong
trong
b
b
ộ
ộ
nh
nh
ớ
ớ
.
.
Data reader
Data reader
ch
ch
ỉ
ỉ
c
c
ó
ó
nhi
nhi
ệ
ệ
m
m
v
v
ụ
ụ
l
l
ấ
ấ
y
y
d
d
ữ
ữ
li
li
ệ
ệ
u
u
t
t
ừ
ừ
CSDL
CSDL
v
v
à
à
chuy
chuy
ể
ể
n
n
v
v
ề
ề
.
.
R
R
ấ
ấ
t
t
hay
hay
đư
đư
ợ
ợ
c
c
s
s
ử
ử
d
d
ụ
ụ
ng
ng
khi
khi
ch
ch
ỉ
ỉ
c
c
ầ
ầ
n
n
hi
hi
ể
ể
n
n
th
th
ị
ị
d
d
ữ
ữ
li
li
ệ
ệ
u
u
,
,
nh
nh
ấ
ấ
t
t
l
l
à
à
trong
trong
môi
môi
trư
trư
ờ
ờ
ng
ng
web.
web.