Bài giảng Lập trình ứng dụng quản lý 1 - Chương 5: ADO.NET (Tiếp theo) - Trương Phước Lộc

01/10/2010  
Khoa CNTT-ĐH.KHTN  
1. MICROSOFT .NET FRAMEWORK  
VB  
C++  
C#  
J#  
…
Lập Trình Ứng Dụng Quản Lý 1  
Chương 5:  
CommonLanguageSpecification  
Windows®  
Forms  
ASP.NET  
Web Forms Web Services  
ADO.NET (tt)  
ADO.NETand XML  
Base Class Library  
GV. Trương Phước Lộc  
CommonLanguageRuntime  
OperatingSystem  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
2
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
3. VAI TRÒ CỦAADO.NET  
2. THE MICROSOFT PLATFORM  
Windows  
Applications  
Web  
Applications  
DBMS  
ADO.NET  
DB  
O
n  
worker  
infrastructure  
infrastruinfrastructure  
XML Web  
Services  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
3
4
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
5. CÁC BƯỚC KHI  
TRUY XUẤT DỮ LIỆU  
4. ADO.NET DATA PROVIDER  
Web  
Form  
ADO.NET Data Provider  
Data  
Adapter  
Data  
Source  
DBMS  
DB  
Connection  
Command  
Connection  
Dataset  
Win  
Form  
Data  
Reader  
Data  
Adaptor  
Specific file  
OleDbConnection Object  
Handles data transfer and provides data for dataset; uses SQL  
Data  
Set  
Application  
5
Application  
Actual data, can contain multiple tables  
Bound controls display data  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
6
1
01/10/2010  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
5. CÁC BƯỚC KHI  
TRUY XUẤT DỮ LIỆU  
6. MỘT KIẾN TRÚC  
THAM KHẢO  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
7
8
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
6. MỘT KIẾN TRÚC  
THAM KHẢO  
6. MỘT KIẾN TRÚC  
THAM KHẢO  
• Presentation Layer: làm nhiệm vụ giao tiếp với  
người dùng cuối để thu thập dữ liệu và hiển thị  
kết quả/dữ liệu thông qua các th
giao diện người sử dụng. Lớp n
các dịch vụ do lớp Business Lo
• Trong .NET thì ta có thể dùng W
ASP.NET hay Mobile Forms để
này.  
Presentation Tier  
Business Tier  
Data Tier  
Data Object  
(Class)  
Dataset  
Windows  
Forms  
XML  
Dataset  
Data  
Source  
XML  
Web  
XML  
XML  
Forms  
Data  
Adapter  
Dataset  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
9
10  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
6. MỘT KIẾN TRÚC  
THAM KHẢO  
• Trong lớp Presentation Layer có 2 thành phần  
chính là User Interface Components và User  
Interface Process Components
6. MỘT KIẾN TRÚC  
THAM KHẢO  
• User Interface Process Components: là thành  
phần chịu trách nhiệm quản lý các qui trình  
chuyển đổi giữa các UI Compone
• User Interface Components là
chịu trách nhiệm thu thập và h
cho người dùng cuối. Trong VB
thành phần này có thể là cá
Button, DataGrid…  
• Ví dụ User Interface Process C
trách nhiệm quản lý các màn hì
trong một loạt các thao tác định
bước trong một Wizard…  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
11  
12  
2
01/10/2010  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
6. MỘT KIẾN TRÚC  
THAM KHẢO  
• Lưu ý: trong lớp Presentation Layer không nên  
sử dụng trực tiếp các dịch vụ của lớp Data  
Access mà nên sử dụng thông
của lớp Business Logic vì khi bạ
tiếp như vậy, bạn có thể bỏ qua
các logic nghiệp vụ mà ứng dụng
6. MỘT KIẾN TRÚC  
THAM KHẢO  
• Lớp Business Logic Layer (BLL) thực hiện các  
nghiệp vụ chính của hệ thống, sử
vụ do lớp Data Access cung cấp,
các dịch vụ cho lớp Presentation.  
• Lớp BLL cũng có thể sử dụng cá
các nhà cung cấp thứ 3 (3rd pa
hiện công việc của mình (ví dụ
dịch vụ thanh tóan trực tuyến
Paypal).  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
13  
14  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
6. MỘT KIẾN TRÚC  
THAM KHẢO  
• Trong lớp này có các thành phần chính là  
Business Components, Business
Service Interface.  
• Service Interface là giao diện lập
này cung cấp cho lớp Presentation
• Lớp Presentation chỉ cần biết các
qua giao diện này mà không cần p
đến bên trong lớp này được hiện
nào.  
6. MỘT KIẾN TRÚC  
THAM KHẢO  
• Business Entities là những thực thể mô tả  
những đối tượng thông tin mà hệ t
• Trong ứng dụng các đối tượng
chuyên mục (Category) và bản tin(
• Các business entities này cũng đ
trao đổi thông tin giữa lớp Prese
Data Access.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
15  
16  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
6. MỘT KIẾN TRÚC  
THAM KHẢO  
• Business Components là những thành phần  
chính thực hiện các dịch vụ
Interface cung cấp.  
• Business Components chịu trác
tra các ràng buộc logic (constraint
nghiệp vụ (business rules).  
6. MỘT KIẾN TRÚC  
THAM KHẢO  
• Trong ứng dụng lớp Business Components sẽ  
chứa các thành phần là Categ
NewsService làm nhiệm vụ cung
vụ quản lý chuyên mục và xử l
(thêm, xóa, sửa, xem chi tiết, lấy d
• Business Components ngoài ra
các dịch vụ bên ngoài khác để t
yêu cầu của ứng dụng.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
17  
18  
3
01/10/2010  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
6. MỘT KIẾN TRÚC  
THAM KHẢO  
• Lớp Data Tier thực hiện các nghiệp vụ liên quan  
đến lưu trữ và truy xuất dữ liệu của ứng dụng.  
• Thông thường Data Tier sẽ sử d
của các hệ quản trị cơ sở dữ
Server, Oracle,… để thực hiện
mình.  
6. MỘT KIẾN TRÚC  
THAM KHẢO  
• Data Access Logic components (DALC) là  
thành phần chính chịu trách nhiệm lưu trữ vào  
và truy xuất dữ liệu từ các nguồ
Sources) như RDMBS, XML, File
• Trong .NET Các DALC này thư
thực bằng cách sử dụng thư việ
giao tiếp với các hệ cơ sở dữ liệu
• Trong lớp Data Tier có các thàn
Data Access Logic, Data So
Agents.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
19  
20  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
7. ADO.NET  
OBJECT MODEL  
7. ADO.NET  
OBJECT MODEL  
DataSet  
DataTableCollection  
.NET Data Provider  
Connection  
Transaction  
Database  
Manages the connection  
to a database  
DataAdapter  
SelectCommand  
DataTable  
DataRowCollection  
Connection  
Command  
Executes a query command  
on the database  
InsertCommand  
UpdateCommand  
DeleteCommand  
DataColumnCollection  
ConstraintCollection  
Command  
Parameters  
Exchanges data between  
the data set and the database  
DataReader  
DataRelationCollection  
DataAdapter  
DataReader  
Provides efficient access to a  
stream of read-only data  
XML  
Database  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
21  
22  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
7. ADO.NET  
OBJECT MODEL  
8. CONNECTION  
• Vai trò của Connection trong ADO.NET là tạo  
kết nối giữa ứng dụng và “nguồn dữ liệu”  
Fill  
DataAdapter  
DataSet  
Update  
(Data Source).  
Errors Collection  
Fill  
DataAdapter  
DataSet  
Update  
Errors Collection  
Command  
Connection  
Data Source  
Parameters  
Command  
Connection  
Data Source  
Parameters  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
23  
24  
4
01/10/2010  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
8. CONNECTION  
8. CONNECTION  
• Chúng  
ta  
có  
thể  
sử  
dụng  
mọi  
• Vai trò của Connection trong ADO.NET là tạo  
kết nối giữa ứng dụng và “nguồn dữ liệu”  
(Data Source).  
• Data Provider: Các Data Provider có sẵn trong  
ADO.NET là:  
System.Data.OleDb.OleDbConnection cho  
“nguồn dữ liệu” (Data Source).  
• Ngoài SQL Server Provider, ADO.NET còn hỗ trợ  
một số Data Provider khác:  
▫ System.Data.OracleClient  
qua  
tập  
tin  
▫ System.Data.OleDb  
▫ System.Data.SqlClient  
System.Data.OracleClient.dll cho dữ liệu nguồn theo  
chuẩn của công ty Oracle.  
• Ứng với mỗi Data Provider chúng ta có một lớp  
Connection tương ứng.  
▫ System.Data.OleDb.OleDbConnection  
▫ Microsoft.Data.Odbc  
Microsoft.Data.Odbc.dll cho ODBC.  
▫ Microsoft.Data.SqlXml qua  
qua  
tập  
tập  
tin  
tin  
Microsoft.Data.SqlXml.dll cho Xml trên SQL server.  
▫ System.Data.SqlClient.SqlConnection  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
25  
26  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
8. CONNECTION  
8. CONNECTION  
• Connection String: trước khi thực hiện kết nối,  
• Tạo ConnectionString và tạo đối tượng kết nối  
ta cần khai báo các thông tin cần thiết cho  
cho “nguồn dữ liệu” là Access.  
1.Imports System.Data.OleDb  
Connection  
thông  
qua  
thuộc  
tính  
2.Dim strConnection As String =  
"Provider=Microsoft.Jet.OLEDB.4.0”&_  
“;Data Source=“ &  
<Đường dẫn>  
3.Dim cnn As New OleDbConnection  
ConnectionString.  
• Cách thức khai báo ConnectionString thay đổi  
tùy thuộc vào Data Provider.  
(strConnection)  
4.…  
5.cnn.Close()  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
27  
28  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
8. CONNECTION  
8. CONNECTION  
• Tạo ConnectionString và tạo đối tượng kết nối cho  
“nguồn dữ liệu” là SQL Server.  
• Tạo ConnectionString và tạo đối tượng kết nối  
cho “nguồn dữ liệu” là Oracle.  
1.Imports System.Data.OleDb  
• Cách 01  
1.Imports System.Data.SqlClient  
2.Dim strConnection As String =  
"Provider=MSDAORA.1” &_  
“; UserID” &_  
<Tên người dùng> &_  
“;Password=“ &_  
<Mật khẩu> &_  
“;Data Source=“ &_  
<Đường dẫn>  
2.Dim strConnection As String  
=
“DataSource=” &_  
<Địa chỉ TCP/IP hay tên máy> &_  
“Initial Catalog=“ &_  
<Tên Database> &_  
“;User ID=“ &_  
<Tên người dùng> &_  
“;Password =“ &_  
<Mật khẩu>  
3.Dim cnn As New OleDbConnection  
3.Dim cnn As New SqlConnection  
(strConnection)  
(strConnection)  
4.…  
4.…  
5.cnn.Close()  
5.cnn.Close()  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
29  
30  
5
01/10/2010  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
8. CONNECTION  
8. CONNECTION  
• Tạo ConnectionString và tạo đối tượng kết nối  
cho “nguồn dữ liệu” là SQL Server.  
• Cách 02  
1.Imports System.Data.SqlClient  
• Các thuộc tính của Connection  
▫ Database (thuộc tính chỉ đọc): Tương ứng với  
Initial Catalog (SQL) hay tên database muốn làm  
việc (OLEDB).  
▫ DataSource (thuộc tính chỉ đọc): Tương ứng với  
DataSource (OLEDB và SQL).  
2.Dim strConnection As String =  
<Địa chỉ TCP/IP hay tên máy> &_  
“Initial Catalog=“ &_  
“DataSource=” &_  
<Tên Database> &_  
“;Integrated Security = SSPI”  
3.Dim cnn As New SqlConnection  
(strConnection)  
▫ Provider (thuộc tính chỉ đọc): Tương ứng với  
Provider.  
4.…  
5.cnn.Close()  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
31  
32  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
8. CONNECTION  
8. CONNECTION  
• Các thuộc tính của Connection  
▫ State: Thuộc tính State thể hiện tình trạng kết nối  
của Connection. Thuộc tính này sẽ nhận một  
trong các giá trị sau:  
• Các phương thức trên Connection  
▫ Phương thức BeginTransaction:  
▫ Phương thức ChangeDatabase:  
▫ Phương thức Close:  
Broken: Kết nối với nguồn dữ liệu đã bị ngắt.  
Closed: Kết nối đã đóng.  
Connecting: Đang kết nối với nguồn dữ liệu.  
Executing: Kết nối đang thực hiện một lệnh.  
Fetching: Kết nối đang truy xuất dữ liệu.  
Open: Kết nối đang mở.  
▫ Phương thức CreateCommand:  
▫ Phương thức Dispose:  
▫ Phương thức Open:  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
33  
34  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
8.1 TRANSACTION  
8.1 TRANSACTION  
• Transaction: Giao tác là quá trình cập nhật tạm  
thời các sửa đổi trên nguồn dữ liệu và chỉ cập  
nhật thật sự khi phương thức Commit của giao  
tác được gọi hoặc phục hồi lại những gì đã thực  
hiện trên dữ liệu qua phương thức Rollback.  
• Transaction được tạo ra bằng cách gọi thực  
hiện phương thức BeginTransaction.  
• Tùy theo loại Connection tương ứng mà  
phương thức BeginTransaction sẽ trả về một  
OleDbTransaction hay SqlTransaction.  
• Tạo Transaction với OleDbConnection có 2  
cách khác nhau.  
• Cách 01  
1.Dim <Transaction> as OleDbTransaction  
= <connection>.BeginTransaction()  
• Cách 02  
1.Dim <Transaction> as OleDbTransaction  
= <connection>.BeginTransaction  
(IsolationLevel)  
• <IsolationLevel>: định tính chất của Transaction.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
35  
36  
6
01/10/2010  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
8.1 TRANSACTION  
8.1 TRANSACTION  
• Tạo Transaction với SqlConnection có 4 cách  
• Tạo Transaction với SqlConnection có 4 cách  
khác nhau.  
khác nhau.  
• Cách 01 (Tương tự OleDbConnection)  
• Cách 03  
1. Dim <Transaction> as SqlTransaction  
= <connection>.BeginTransaction  
1.Dim <Transaction> as OleDbTransaction  
= <connection>.BeginTransaction()  
(<Tên giao tác>)  
• Cách 02 (Tương tự OleDbConnection)  
1.Dim <Transaction> as OleDbTransaction  
= <connection>.BeginTransaction  
(IsolationLevel)  
• Cách 04  
1. Dim <Transaction> as SqlTransaction  
= <connection>.BeginTransaction  
(<Tên giao tác>,<IsolationLevel>)  
• <IsolationLevel>: định tính chất của Transaction.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
37  
38  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
8.1 TRANSACTION  
8.1 TRANSACTION  
▫ IsolationLevel có các giá trị sau:  
Chaos  
ReadCommitted  
ReadUnCommitted  
RepeatableRead  
Serializable  
• Các thuộc tính của Transaction  
▫ Connection: Thuộc tính này xác định Connection  
kết hợp với giao tác.  
▫ IsolationLevel: Thuộc tính này cho biết giá trị của  
IsolationLevel (mức độ cô lập).  
Trong .NET data provider sử dụng giá trị này để thực hiện giao  
tác.  
IsolationLevel có hiệu lực cho đến khi được thay đổi giá trị và  
có thể thay đổi tại bất cứ thời điểm nào.  
Unspecified  
. Giá trị mới sẽ được dùng trong thời gian thực hiện giao tác.  
. Nếu việc thay đổi xảy ra trong khi giao tác đang diễn biến, giá  
trị có hiệu lực cho các lệnh còn lại trong giao tác.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
39  
40  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
8.1 TRANSACTION  
8.1 TRANSACTION  
• Các phương thức của Transaction  
▫ Begin: Bắt đầu một giao tác lồng.  
▫ Commit: Cập nhật giao tác đang xảy ra.  
▫ Rollback: Phục hồi những thay đổi giao tác đã  
thực hiện.  
• Sử dụng ToolBox để tạo đối tượng  
OleDbConnection.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
41  
42  
7
01/10/2010  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
9. COMMAND  
9. COMMAND  
• Sau khi tạo kết nối với “nguồn dữ liệu”, mọi thao  
tác trên “nguồn dữ liệu” được kết nối đều được  
thực hiện thông qua Command.  
Fill  
• Sau khi tạo kết nối với “nguồn dữ liệu”, mọi thao  
tác trên “nguồn dữ liệu” được kết nối đều được  
thực hiện thông qua Command.  
• Tùy theo loại đối tượng Connection, đối tượng  
Command thuộc tên miền như sau:  
DataAdapter  
DataSet  
Update  
Errors Collection  
▫ Sytem.Data.OleDb.OleDbCommand.  
▫ Sytem.Data.SqlClient.SqlCommand.  
Command  
Connection  
Data Source  
Parameters  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
43  
44  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
9. COMMAND  
9. COMMAND  
• Tạo đối tượng Command ta có thể thực hiện  
• Tạo đối tượng Command ta có thể thực hiện  
theo một trong những cách thức như sau:  
theo một trong những cách thức như sau:  
▫ Cách 1:  
1.Dim <Biến Command> As New  
<Loại>Command()  
▫ Cách 3:  
1.Dim <Biến Command> As New  
<Loại>Command(<Lệnh>,<Biến Connection>)  
2.<Biến Command>.Connection =  
<Biến Connection>  
3.<Biến Command>.CommandText=<Lệnh>  
▫ Cách 4:  
2.Dim <Biến Command> As  
<Loại>Command =  
<Biến Connection>.CreateCommand()  
3.<Biến Command>.CommandText=<Lệnh>  
▫ Cách 2:  
4.Dim <Biến Command> As New  
<Loại>Command(<Lệnh>)  
5.<Biến Command>.Connection =  
<Biến Connection>  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
45  
46  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
9. COMMAND  
9. COMMAND  
• Các thuộc tính của đối tượng Command  
• Các thuộc tính của đối tượng Command  
▫ Connection: Đối tượng Connection sử dụng cho  
command.  
▫ Parameters: Tập hợp các tham số dùng trong  
command.  
▫ CommandText (thuộc tính đọc ghi): Lệnh SQL  
hoặc tên stored procedure muốn thực hiện trên  
nguồn dữ liệu.  
▫ CommandType: Thuộc tính cho biết nội dung  
CommandText là gì với các giá trị sau:  
▫ Transaction: Giao tác mà trên đó command thực  
hiện.  
▫ Text (mặc định): Một câu lệnh SQL.  
▫ Storeprocedure: Tên một thủ tục nội.  
▫ TableDirect: Tên của bảng. Khi CommandType  
có giá trị này, CommandText là tên của một bảng.  
Khi command thực hiện sẽ trả về đủ các dòng và  
các cột (OleDbCommand)  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
47  
48  
8
01/10/2010  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
9. COMMAND  
9. COMMAND  
• Lớp đối tượng Parameter: Lệnh SQL trong  
CommandText có thể sử dụng các dấu hỏi (?)  
thay thế cho trị chưa xác định và khi thực hiện  
sẽ dùng đối tượng Parameter để truyền giá trị  
vào chỗ các dấu hỏi.  
• Cú pháp khai báo đối tượng  
OledbParameter  
1.Dim <Biến Parameter> As New  
OledbParameter  
2.Dim <Biến Parameter> As New  
OledbParameter(<Tên>)  
3.Dim <Biến Parameter> As New  
thuộc lớp  
• Tùy theo đối tượng Command, Parameter sẽ  
khai báo từ 1 trong 2 lớp sau:  
OledbParameter(<Tên>,<Giá Trị>)  
▫ OledbParameter  
▫ SqlParameter  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
49  
50  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
9. COMMAND  
9. COMMAND  
• Các thuộc tính của Parameter  
▫ Direction (thuộc tính đọc ghi): Giá trị cho biết loại  
• Cú pháp khai báo đối tượng SqlParameter  
1.Dim <Biến Parameter> As New  
SqlParameter  
2.Dim <Biến Parameter> As New  
SqlParameter(<Tên>)  
tham số với các giá trị sau:  
Input  
InputOutput  
Output  
3.Dim <Biến Parameter> As New  
SqlParameter(<Tên>,<Giá Trị>)  
ReturnValue  
▫ OledbType hoặc SqlType (thuộc tính đọc ghi):  
Kiểu dữ liệu OleDb hoặc SqlDb của tham số.  
▫ ParameterName (thuộc tính đọc ghi): Tên tham  
số.  
▫ Value (thuộc tính đọc ghi): Giá trị tham số.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
51  
52  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
9. COMMAND  
9. COMMAND  
• Thực hiện Command: Command có nhiều  
phương thức thực hiện khác nhau như sau:  
▫ ExecuteNonquery  
▫ ExecuteReader  
▫ ExecuteScalar  
• ExecuteNonquery: Để gọi thực hiện các câu  
truy vấn cập nhật INSERT, UPDATE,  
DELETE,…hay thủ tục nội không trả về dữ liệu  
hoặc khi chúng ta không quan tâm đến kiểu dữ  
liệu trả về.  
• Với các lệnh INSERT, UPDATE, DELETE  
phương thức trên trả về số dòng bị ảnh hưởng  
của câu lệnh command, ngược lại phương thức  
trả về giá trị -1.  
• Cú pháp  
1.<Biến Command>.ExecuteNonQuery()  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
53  
54  
9
01/10/2010  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
9. COMMAND  
9. COMMAND  
• ExecuteReader: Phương thức này trả về một  
đối tượng DataReader để đọc dữ liệu mỗi lần  
một dòng với phương thức Read().  
• DataReader đọc dữ liệu trực tiếp từ nguồn dữ  
liệu nên phải duy trì kết nối cho đến khi dữ liệu  
được đọc xong.  
• Cú pháp  
1.…<Biến Command>.ExecuteReader()  
2.…<Biến Command>.ExecuteReader  
(<Behavior>)  
• Cú pháp  
1.…<Biến Command>.ExecuteReader  
(<Behavior>)  
• Các giá trị của Behavior  
▫ CloseConnection: Khi đối tượng DataReader  
đóng lại, Connection tự động đóng theo.  
▫ Default: Tương tự như khi gọi phương thức  
ExcuteReader() không có tham số.  
▫ SchemaOnly: Truy vấn chỉ trả về cấu trúc các cột  
và không làm ảnh hưởng đến các thao tác khác.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
55  
56  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
9. COMMAND  
9. COMMAND  
• DataReader: là đối tượng truy cập “nguồn dữ  
liệu” trực tiếp.  
• DataReader sử dụng cursor phía Server trong  
suốt quá trình đọc dữ liệu.  
• DataReader thuộc tên miền  
▫ System.Data.OledbDataReader  
• ExecuteScalar: Phương thức ExecuteScalar  
thực hiện lệnh của Command và chỉ trả về giá trị  
của cột đầu tiên và dòng đầu tiên.  
• Phương thức ExecuteScalar thường được gọi  
khi muốn Command thực hiện các hàm tính  
toán thống kê SUM, COUNT, AVG, MAX, MIN  
…trên “nguồn dữ liệu” ngay lúc thực thi.  
▫ System.Data.SqlDataReader  
• Trong khi DataReader đang mở, các thao tác  
khác trên “nguồn dữ liệu” đều không thể thực  
hiện cho đến khi DataReader đóng lại bằng  
phương thức Close.  
• Cú pháp:  
1. …<Biến Command>.ExecuteScalar()  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
57  
58  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
9. COMMAND  
9. COMMAND  
• Các phương thức của DataReader  
▫ Close: Đóng DataReader.  
▫ GetFieldType: Trả về kiểu dữ liệu của cột truyền  
vào.  
▫ GetName: Trả về tên của cột truyền vào.  
▫ GetOrdinal: Trả về số thứ tự của cột truyền vào.  
▫ GetSchema Table: Trả về bảng chứa thông tin  
mô tả cột của DataReader.  
▫ GetValue: Trả về giá trị trên cột tuyền vào.  
▫ Read: Di chuyển đến dòng kế tiếp và trả về True  
nếu còn dòng để di chuyển, ngược lại trả về  
False.  
• Các thuộc tính của DataReader  
▫ FieldCount: Trả về số cột trên dòng hiện hành  
của DataReader.  
▫ IsClosed: Cho biết DataReader đã được đóng  
chưa.  
▫ Item: Trị của cột truyền vào. Tham số truyền có  
thể là tên cột hoặc chỉ số của cột (chỉ số được  
đánh số từ 0).  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
59  
60  
10  
01/10/2010  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
10. DATA ADAPTER  
10. DATA ADAPTER  
• DataAdapter dùng để lấy dữ liệu từ “nguồn dữ  
liệu” (DataSource) về cho ứng dụng.  
• Đối tượng DataAdapter cho phép chúng ta lấy  
cấu trúc và dữ liệu của các bảng trong “nguồn  
dữ liệu”.  
Fill  
Fill  
DataAdapter  
DataSet  
DataAdapter  
DataSet  
Update  
Update  
Errors Collection  
Errors Collection  
Command  
Connection  
Data Source  
Command  
Connection  
Data Source  
Parameters  
Parameters  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
61  
62  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
10. DATA ADAPTER  
10. DATA ADAPTER  
• DataAdapter là một bộ gồm 4 đối tượng  
command:  
• Thông thường ta chỉ cần khai báo nội dung lệnh  
cho SelectCommand.  
▫ SelectCommand: cho phép lấy thông tin từ  
“nguồn dữ liệu” về.  
• Các nội dung của các command còn lại có thể  
được  
phát  
sinh  
nhờ  
đối  
tượng  
▫ InsertCommand: cho phép thêm dữ liệu vào  
bảng trong “nguồn dữ liệu”.  
▫ UpdatedCommand: cho phép sửa đổi dữ liệu  
trên bảng trong “nguồn dữ liệu”.  
CommandBuilder dựa vào nội dung của  
SelectCommand.  
▫ DeleteCommand: cho phép hủy bỏ dữ liệu trên  
bảng trong “nguồn dữ liệu”.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
63  
64  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
10. DATA ADAPTER  
10. DATA ADAPTER  
• Tạo DataAdapter: Tương ứng với đối tượng  
Command chúng ta cần khai báo rõ DataAdapter sử  
• Cú pháp tạo DataAdapter:  
▫ Cách 3:  
New <loại>DataAdapter(<lệnh>,  
<Đối Tượng Connection>)  
▫ Cách 4:  
dụng  
theo  
Data  
Provider  
nào:  
SqlDataAdapter or OledbDataAdapter.  
• Cú pháp tạo DataAdapter:  
▫ Cách 1:  
New <loại>DataAdapter(<lệnh>,  
<chuỗi Connection>)  
New <loại> DataAdapter()  
▫ Cách 2:  
•
•
•
<lệnh>: Câu lệnh SQL, tên storedprocedure.. để thực hiện truy xuất  
từ nguồn dữ liệu.  
<Đối tượng Connection>: Đối tượng Connection trên đó  
DataAdapterthao tác với nguồn dữ liệu.  
<chuỗi Connection>: Chuỗi ConnectionString để tạo đối tượng  
Connection.  
New <loại> DataAdapter(<ĐTSC>)  
Trong đó: ĐTSC tương ứng là “Đối tượng  
SelectCommand”. Đối tượng này có sẵn với nội dung  
lệnh truy xuất.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
65  
66  
11  
01/10/2010  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
10. DATA ADAPTER  
10. DATA ADAPTER  
• Các thuộc tính chính của DataAdapter  
▫ Thuộc tính ContinueUpdatedOnError: Chỉ định cách  
• DataAdapter chỉ thao tác được với nguồn dữ  
liệu qua một đối tượng Connection đang kết nối.  
• Đặt biệt khi Connection chưa mở, DataAdapter  
sẽ tự động mở kết nối khi cần và tự động đóng  
lại.  
• Ngược lại khi một Connection đã mở sẵn, chúng  
ta phải tự đóng kết nối, DataAdapter không thực  
hiện tự động.  
thức xử lý khi DataAdapter cập nhật dữ liệu về  
nguồn  
dữ  
liệu  
bị  
lỗi.  
Nếu thuộc tính này nhận giá trị là True  
DataAdapter sẽ bỏ qua dòng bị lỗi và tiếp tục cập  
nhật các dòng kế tiếp. Lỗi phát sinh sẽ đưa vào  
thuộc tính RowError của dòng bị lỗi.  
Ngược lại nếu thuộc tính nhận giá trị là False sẽ  
phát sinh Exception khi dòng bị lỗi.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
67  
68  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
10. DATA ADAPTER  
10. DATA ADAPTER  
• Các thuộc tính chính của DataAdapter  
• Các thuộc tính chính của DataAdapter  
▫ Thuộc tính TableMappings: Tập hợp các ánh xạ  
tên bảng khi DataAdapter đỗ dữ liệu hay cấu trúc  
vào đối tượng chứa.  
▫ Thuộc tính DeleteCommand: Đối tượng Command  
chứa nội dung lệnh hủy các mẩu tin trên nguồn dữ  
liệu.  
▫ Thuộc tính InsertCommand: Đối tượng Command  
chứa nội dung lệnh chèn các mẩu tin mới vào nguồn  
dữ liệu.  
▫ Thuộc tính SelectCommand: Đối tượng Command  
chứa nội dung lệnh truy xuất các mẩu tin từ nguồn dữ  
liệu.  
▫ Thuộc tính UpdateCommand: Đối tượng Command  
chứa nội dung lệnh cập nhật các mẩu tin vào nguồn  
dữ liệu.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
69  
70  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
10. DATA ADAPTER  
10. DATA ADAPTER  
• Các phương thức chính của DataAdaper.  
▫ Lấy dữ liệu từ nguồn.  
• Tạo đối tượng DataAdapter bằng điều khiển  
▫ Lấy cấu trúc dữ liệu từ nguồn.  
▫ Tạo bộ lệnh cập nhật cho DataAdapter.  
▫ Cập nhật dữ liệu về nguồn  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
71  
72  
12  
01/10/2010  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
10. DATA ADAPTER  
Client  
Server  
DataSet  
DataAdapter  
Fill  
Database  
Data  
Data  
Update  
DataTable  
InsertCommand  
UpdateCommand  
DeleteCommand  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
73  
74  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
11. DATASET  
11. DATASET  
Dataset  
Dataset  
DataColumn  
DataTable  
DataTableCollection  
DataTable  
DataRowCollection  
DataRow  
DataColumnCollection  
ConstraintCollection  
DataColumn  
DataTable  
DataRow  
DataRelationsCollection  
DataSet Architecture  
DataSet Architecture  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
75  
76  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
11. DATASET  
11. DATASET  
• DataSet là một mô hình CSDL quan hệ thu nhỏ  
đáp ứng nhu cầu của ứng dụng.  
DataSet  
DataRelationCollection  
ExtendedPropeties  
DataTableCollection  
Fill  
DataAdapter  
DataSet  
Update  
DataTable  
Errors Collection  
DataRowCollection  
DataRow  
DataView  
ChildRelations  
ParentRelations  
Constraints  
Command  
Connection  
Data Source  
Parameters  
DataColumnCollection  
DataColumn  
ExtendedProperties  
PrimaryKey  
ExtendedProperties  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
77  
78  
13  
01/10/2010  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
11. DATASET  
11. DATASET  
• DataSet là một mô hình CSDL quan hệ thu nhỏ  
đáp ứng nhu cầu của ứng dụng.  
• Ta có thể khai báo DataSet bằng một trong  
những cách thức sau:  
• DataSet chứa các bảng (DataTable), các quan  
hệ (DataRelation) và các ràng buộc (Constraint).  
• DataSet thuộc tên miền như sau:  
• Cách 1:  
New System.Data.DataSet()  
• Cách 2:  
System.Data.DataSet  
New System.Data.DataSet(<tên>)  
Dataset  
trong đó <tên>: tên của DataSet  
• Cách 3: Tạo DataSet bằng điều khiển trong  
nhóm Data của ToolBox  
DataTableCollection  
DataTable  
DataRowCollection  
DataColumnCollection  
ConstraintCollection  
DataRelationsCollection  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
79  
80  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
11. DATASET  
11. DATASET  
Thuộctính  
Mô tả  
• Các phương thức của DataSet  
▫ Thêm một bảng vào DataSet.  
▫ Thêm nhiều bảng vào DataSet.  
▫ Xóa một bảng khỏi DataSet  
▫ Kiểm tra một bảng có thuộc về DataSet.  
▫ Lấy chỉ số của bảng.  
DataSetName  
Tên của DataSet (đọc ghi)  
Các thuộc tính chính của DataSet  
HasErrors  
Giá trị cho biết có lỗi xảy ra trên một trong các bảng  
của DataSet: True/False (chỉ đọc)  
Relations  
Tables  
Tập hợp các quan hệ (DataRelation) một nhiều của  
DataSet (chỉ đọc)  
Tập hợp các bảng (DataTable) của DataSet (chỉ đọc)  
▫ Lấy số lượng bảng chứa trong DataSet.  
▫ Lấy ra một bảng chứa trong DataSet.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
81  
82  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
11. DATASET  
11. DATASET  
• Các phương thức của DataSet  
▫ …  
• Các phương thức của DataSet  
▫ …  
▫ Kiểm tra dữ liệu của DataSet có thay đổi.  
▫ Lấy dòng dữ liệu đã thay đổi trong DataSet.  
▫ Cập nhật các thay đổi trên DataSet.  
▫ Hủy bỏ các thay đổi trên DataSet.  
▫ Xóa bỏ mọi dữ liệu trên DataSet.  
▫ Tạo một bản sao của DataSet.  
▫ Trộn dữ liệu bên ngoài vào trong DataSet.  
▫ Xóa bỏ DataSet.  
▫ Tạo một quan hệ giữa hai bảng trong DataSet.  
▫ Thêm nhiều quan hệ vào DataSet.  
▫ Xóa quan hệ khỏi DataSet.  
▫ Kiểm tra quan hệ có thuộc về DataSet.  
▫ Lấy chỉ số của quan hệ.  
▫ Lấy số lượng quan hệ trong DataSet.  
▫ Lấy ra một quan hệ trong DataSet  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
83  
84  
14  
01/10/2010  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
12. TYPED DATASET  
12. TYPED DATASET  
• Typed DataSet là một DataSet đã được định  
sẵn cấu trúc của các bảng, các quan hệ, các  
ràng buộc nhưng chưa có dữ liệu.  
• Chúng ta có thể tham chiếu đến các bảng, các  
cột bằng tên của chúng thay vì phải thông qua  
tập hợp.  
• Cách tạo Typed DataSet.  
▫ Chọn Project\Add New Item\DataSet.  
▫ Typed DataSet được lưu thành tập tin có đuôi là  
.XSD  
▫ Nhấn phải trên cửa sổ tiếp theo, chọn mục New  
Element.  
▫ Lần lượt đặt tên bảng, tên cột, kiểu dữ liệu  
▫ Tiếp tục cho các bảng khác  
• Do đã có cấu trúc, nên kiểu của các cột sẽ được  
kiểm tra ngay khi biên dịch chứ không phải lúc  
thực thi như DataSet thường.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
85  
86  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
12. TYPED DATASET  
12. TYPED DATASET  
• Trong trường hợp ta tạo Typed DataSet nếu cấu  
trúc các bảng giống cấu trúc có sẵn trong  
CSDL, chúng ta có thể kéo cấu trúc các bảng  
trong CSDL vào sơ đồ.  
• Tạo quan hệ giữa các bảng trong Typed  
DataSet có thể thực hiện bằng một trong những  
cách như sau:  
▫ Cách 1: Chọn field trên bảng cha muốn thiết lập  
quan hệ và thả treeb bảng con.  
▫ Cách 2: Nhấn chuột phải trên bảng cha vào chọn  
mục Add\New Relation.  
▫ Cách 3: Kéo điều khiển Relation trong nhóm XML  
Schema của Toolbox thả trên bảng muốn tạo  
quan hệ.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
87  
88  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
12. TYPED DATASET  
12. TYPED DATASET  
• Lấy dữ liệu vào Typed DataSet: Khi chương  
trình thực thi, dữ liệu không tự động lấy về  
nhưng chúng ta phải sử dụng DataAdapter để  
lấy dữ liệu nguồn vào DataSet.  
• Hiển thị dữ liệu theo quan hệ: Nếu các bảng có  
quan hệ, khi di chuyển trên bảng cha sẽ dẫn  
đến việc di chuyển trên bảng con đến các dòng  
tương ứng với mẫu tin trên bảng cha thông qua  
tên quan hệ.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
89  
90  
15  
01/10/2010  
Khoa CNTT-ĐH.KHTN  
Khoa CNTT-ĐH.KHTN  
12. TYPED DATASET  
Câu hỏi  
• Chúng ta có thể sử dụng Typed DataSet thông  
qua việc khai báo một biến từ lớp DataSet đã  
tạo như sau:  
Dim ds New <Tên lớp Typed DataSet>  
• Các bảng và các cột trong Typed DataSet được  
liệt kê trong danh sách thành phần của đối  
tượng  
• Ngoài các thuộc tính, phương thức, sự kiện mặc  
nhiên kế thừa từ DataSet, những đối tượng này  
còn có những thuộc tính các bảng trong  
DataSet, các cột trong bảng với tên và kiểu cụ  
thể.  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
GV. Trương Phước Lộc  
ThS. Nguyễn Tấn Trần MinhKhang  
91  
92  
16  
pdf 16 trang myanh 20660 Free
Bạn đang xem tài liệu "Bài giảng Lập trình ứng dụng quản lý 1 - Chương 5: ADO.NET (Tiếp theo) - Trương Phước Lộc", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_lap_trinh_ung_dung_quan_ly_1_chuong_5_ado_net_tiep.pdf