Tài liệu Lập trình Web ASP.Net - Chương 4: Xử lý dữ liệu với ADO.NET - Vũ Đức Lung: LHU 1
LẬP TRÌNH
WEB ASP.NET
Trường Đại Học Lạc Hồng 2009 - 2010
Ts. Vũ Đức Lung
Ks. Phan Hữu Tiếp
Xử Lý Dữ Liệu Với ADO.NET
Chương 4:
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 2
Nội dung chính
Giới thiệu về ADO.NET
Các đối tượng trong ADO.NET
Điều khiển liên kết dữ liệu
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 3
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 4
Giới thiệu về ADO.NET
Ứng dụng cần CSDL: người dùng, ứng dụng, file,
CSDL quan hệ => lưu trữ theo hệ quản trị CSDL: Access, MS
SQL Server, Oracle.
Người thiết kế quan tâm:
Lưu trữ dữ liệu tập trung
Đảm bảo toàn vẹn dữ liệu
Khả năng truy xuất đồng thời
Thời gian hồi đáp ngắn
Bảo mật dữ liệu
Trao đổi giữa các hệ thống khác nhau
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 5
Giới thiệu về ADO.NET
ADO.NET (Active Data Object) là một phần của .NET
Framework, cung cấp c...
72 trang |
Chia sẻ: putihuynh11 | Lượt xem: 1069 | Lượt tải: 1
Bạn đang xem trước 20 trang mẫu tài liệu Lập trình Web ASP.Net - Chương 4: Xử lý dữ liệu với ADO.NET - Vũ Đức Lung, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
LHU 1
LẬP TRÌNH
WEB ASP.NET
Trường Đại Học Lạc Hồng 2009 - 2010
Ts. Vũ Đức Lung
Ks. Phan Hữu Tiếp
Xử Lý Dữ Liệu Với ADO.NET
Chương 4:
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 2
Nội dung chính
Giới thiệu về ADO.NET
Các đối tượng trong ADO.NET
Điều khiển liên kết dữ liệu
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 3
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 4
Giới thiệu về ADO.NET
Ứng dụng cần CSDL: người dùng, ứng dụng, file,
CSDL quan hệ => lưu trữ theo hệ quản trị CSDL: Access, MS
SQL Server, Oracle.
Người thiết kế quan tâm:
Lưu trữ dữ liệu tập trung
Đảm bảo toàn vẹn dữ liệu
Khả năng truy xuất đồng thời
Thời gian hồi đáp ngắn
Bảo mật dữ liệu
Trao đổi giữa các hệ thống khác nhau
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 5
Giới thiệu về ADO.NET
ADO.NET (Active Data Object) là một phần của .NET
Framework, cung cấp các dịch vụ xử lý dữ liệu
Làm việc với dữ liệu không kết nối
Dữ liệu được lưu trữ trong một CSDL thu nhỏ gọi là DataSet
=>tăng tốc độ tính toán, giảm sử dụng tài nguyên trên
Database server.
Khả năng xử lý dữ liệu dạng chuẩn XML =>làm việc với nhiều
ứng dụng khác
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 6
Giới thiệu về ADO.NET
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 7
Giới thiệu về ADO.NET
Kiến trúc ADO.NET có hai đối tượng chính: Dataset (data
table) và .NET data provider (Data Adapter, DataReader,
Command, Connection)
Dataset lưu data từ Database
Để nhận data từ CSDL, DataAdapter dùng câu lệnh SELECT
trong Command, để cập nhật data dùng INSERT, UPDATE,
DELETE
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 8
Giới thiệu về ADO.NET
Các thành phần trong ADO.NET
DataSet
DataTable
DataView
DataRow
DataColumn
DataRelation
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 9
Các thành phần trong ADO.NET
Managed provider component: gồm DataAdapter, DataReader
giữ nhiệm vụ làm việc trực tiếp như tập tin, database,
Content component: gồm Dataset, DataTable, đại diện cho dữ
liệu thực sự cần làm việc.
DataReader là đối tượng mới, giúp việc truy xuất dữ liệu nhanh
chóng nhưng chỉ được phép đọc và di chuyển tới
Dataset cũng là đối tượng mới, không chỉ là dữ liệu, Dataset còn
có thể coi là một bản sao gọn nhẹ của CSDL trong bộ nhớ với
nhiều bảng và có các mối quan hệ. Dataset hỗ trợ XML thông
qua đối tượng XMLDataDocument.
DataAdapter là đối tượng kết nối giữa DataSet và CSDL. Nó
gồm Connection và Commmand, để cung cấp dữ liệu cho
Dataset, cũng như cập nhật dữ liệu từ DataSet xuống CSDL.
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 10
Các thành phần trong ADO.NET
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 11
Các thành phần trong ADO.NET
DataSet:
DataSet dùng để chứa dữ liệu lấy từ CSDL lớn ( SQL, Aceess)
sau đó mọi thông tin cần thiết sẽ được truy xuất từ DataSet
Nói 01 cách khác DataSet là CSDL thu nhỏ từ CSDL lớn
Trong Dataset sẽ chứa các bảng là thông tin mà chúng ta cần
lấy.Trong DataSet sẽ có nhiều DataTable và các mối quan hệ
giữa chúng đại diện bởi các DataRelation
Dataset giống như là hình ảnh về CSDL trong bộ nhớ .
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 12
Các thành phần trong ADO.NET
Lợi ích trong việc sử dụng DataSet
Hoàn toàn trong bộ nhớ: Một Table trong Dataset là một Array of
Rows, nên ta có thể dùng thẳng (direct access) một record bằng cách
nói đến cái Row chứa nó, chớ không cần phải dùng MoveNext,
MovePrev,.v.v.
Làm nhẹ công tác của Database server. Tất cả mọi công tác sửa đổi dữ
liệu đều được thực hiện trong Dataset.
Dataset có thể được biểu diễn bằng một XML (eXtensible Marked
Language)
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 13
Các thành phần trong ADO.NET
DataTable:
DataTable là 01 thành phần trong Dataset
DataTable chứa dữ liệu của 01 bảng trong Dataset và thuộc lớp
DataTable. DataTable bao gồm
• Tập hợp Columns thuôc lớp DataColumnCollection trong đó mỗi cột
là một đối tượng thuộc lớp DataColumn
• Tập hợp Rows thuôc lớp DataRowCollection trong đó mỗi cột là một
đối tượng thuộc lớp DataRow
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 14
Các thành phần trong ADO.NET
DataRelation:
Dataset bao gồm tập hợp các table đại diện bởi các đối tượng
DataTable và quan hệ giữa các table đó đại diện bởi các đối
tượng DataRelation
DataRelation, người dùng có thể:
• Định nghĩa mối quan hệ giữa các bảng
• Duyệt dữ liệu trong các bảng theo mối quan hệ Master – Detail
Một đối tượng kiểu DataRelation bao gồm các thông tin:
• Tên của Parent Table và Child Table
• Các column trong DataRelation đại diện cho PrimaryKey trong
Parent và ForeignKey trong Child Table
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 15
Các thành phần trong ADO.NET
DataRelation:
Với DataRelation, ADO.NET cung cấp cho người lập trình một
cách thức mới để xử lý dữ liệu. Dữ liệu vẫn nằm trong các bảng
thay vì bị gom từ nhiều bảng thành 01 RecordSet nhưng vẫn có
thể truy cập dễ dàng và hiệu quả.
Ví dụ: trong parent table có 10 dòng, mỗi dòng trong Parent table
có 10 dòng con trong Child table
Cách cũ: dùng 01 truy vấn kết hợp hai bảng để lấy 1 lần 100
mẫu tin hay dùng 02 RecordSet, mỗi lần RecordSet Master thay
đổi mẫu tin hiện hành thì mở lại RecordSet Detail
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 16
Các thành phần trong ADO.NET
DataRelation:
Khuyết điểm: dữ liệu bị lấy thừa vì không chắc người dùng sẽ đi
xem hết 100 mẫu tin đã lấy và khó thao tác thêm, sửa, xóa, Với
cách thứ 2, dữ liệu chỉ lấy vừa đủ nhưng chậm hơn vì mỗi lần
thay đổi Master lại phải truy vấn dữ liệu cho Detail
Phương pháp mới: Chỉ cần lấy dữ liệu 01 lần duy nhất
nhưng dữ liệu vẫn nằm trong các bảng, dễ dàng thao tác xử
lý
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 17
Các thành phần trong ADO.NET
Ràng Buộc Trên Quan Hệ: ADO.NET chỉ cho phép xác định 02
loại ràng buộc
UniqueConstraint: đảm bảo tính duy nhất về giá trị của một cột trong
table
ForeignKeyContraint: chỉ ra cách ứng dụng sẽ thực hiện khi cập nhật
hay xóa dữ liệu trên bảng có quan hệ với bảng khác
Các giá trị của ForeignKeyContraint là:
None: không làm gì cả
Cascade: phụ thuộc vào dòng trên parent table sẽ bị cập nhật hay
xóa
SetDefault:giá trị của cột khóa ngoại trên detail table được đặt về giá
trị mặc định khi dòng trên parent table bị xóa
SetNull: giống SetDefault , giá trị được đặt là NULL
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 18
Các thành phần trong ADO.NET
DataView:
DataView gần giống với khái niệm RecordSet của ADO. Trên
một DataTable có thể tạo nhiều DataView với các điều kiện lọc,
sắp xếp dữ liệu khác nhau. Trên DataView ta có thể xem hay
thay đổi giá trị các mẫu tin
DataView của ADO.NET có nhiệm vụ kết nối với các control của
WinForm và Web Form
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 19
Điểm nổi bật trong ADO.NET
Tương tác giữa nhiều hệ thống khác nhau (Interoperability)
Hỗ trợ nhiều người dùng (Scanlability)
Mở rộng khả năng làm việc với CSDL (Productivity)
Hiệu quả cao trong xử lý dữ liệu (Performance)
Cơ chế làm việc ở ADO.NET:
Xử dụng dữ liệu ở dạng disconnect data
Client tạo kết nối với server để lấy dữ liệu
Server gửi dữ liệu về cho Client
Client ngắt kết nối với Server
Khi cần cập nhật dữ liệu, kết nối giữa Client và Server được
phục hồi
Thời gian kết nối giữa Client và Server không còn lâu như trước
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 20
Các đối tượng trong ADO.NET
Khai báo và sử dụng không gian tên (namespace)
Namespace Mục đích
-System.Data
-System.Data.OleDb
-System.Data.SqlClient
-Các đối tượng và kiểu cơ bản phục
vụ ADO.NET
-Các lớp được thiết kế để làm việc
với bất kỳ nguồn dữ liệu nào
- Thiết kế tối ưu cho CSDL SQL
server
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 21
Đối tượng Connection
Data Provider:
Data Provider có sẵn trong ADO.NET
• System.Data.OleDb
• System.Data.SqlClient
Ứng với mỗi tên miền có một connection tương ứng
System.Data.OleDb.OleDbConnection
System.Data.SqlClient.SqlConnection
Cả OleDBConnection và SQLConnection đều có các thuộc tính
và phương thức giống nhau như ConnectionString , State hay
Open
- Các Provider mà OLEDB và SQL có thể kết nối dữ liệu:
SQLOLEDB: OLEDB Provider của Microsoft cho SQL Server
MSDAORA: OLEDB Provider của Microsoft cho Oracle
JOLT: OLEDB Provider cho Jet
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 22
Đối tượng Connection
Connection String:Cung cấp thông tin cần thiết cho kết nối.
Trước khi thực hiện kết nối cần thông báo các thông tin cần
thiết cho Connection thông qua thuộc tính Connection String.
Cách khai báo thay đổi tùy thuộc vào Data Provider.
Phụ thuộc vào Data Provider
OleDB Provider có thể gồm các thành phần:
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 23
Đối tượng Connection
Ví dụ 1: Tạo connection đến CSDL Microsoft Access
Ví dụ 2: Tạo connection đến CSDL SQL Server
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 24
Đối tượng Connection
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 25
Đối tượng Connection
Ví dụ 3: Tạo connection đến CSDL SQL Server
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 26
Đối tượng Connection
Ví dụ 4: Tạo connection đến CSDL SQL Server
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 27
CÁC ĐỐI TƯỢNG TRONG ADO.NET
I.CONNECTION:
Các bước thực hiện tiến hành kết nối
Bước 1: tạo 1 file có đuôi .UDL. Nhấp đúp vào file để kích hoạt
Bước 2: 01 hộp thoại xuất hiện:
Chọn mục:
Microsoft OLEDB Provider for SQL Server
Trong Tab Provider
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 28
CÁC ĐỐI TƯỢNG TRONG ADO.NET
I.CONNECTION:
1.Gõ tên
Server
2. Chọn
quyền kết
nối
3 .Nhập
username và
pass word
4. Chọn
Database
sử dụng
5. Nhấn
TestConnection
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 29
CÁC ĐỐI TƯỢNG TRONG ADO.NET
I.CONNECTION:
Bước 3: Mở File vừa tạo bằng Notepad ta sẽ có chuỗi kết nối.
Đăng nhập bằng quyền Window
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist
Security Info=False;Initial Catalog=ETEST;Data
Source=GOATM
Đăng nhập bằng username và password
Provider=SQLOLEDB.1;Persist Security Info=False;User
ID=etest;Initial Catalog=ETEST;Data Source=GOATM
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 30
CÁC ĐỐI TƯỢNG TRONG ADO.NET
I.CONNECTION:
Tạo connection đến CSDL SQL:
Imports System.Data.slqClient
Dim strconnection as string
Strconnection=“Provider=SQLOLEDB.1;Integrated
Security=SSPI;Persist Security Info=False;Initial
Catalog=ETEST;Data Source=GOATM”
Dim ConnDB as new SqlConnection(strconnection)
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 31
Đối tượng Connection
Các phương thức cần chú ý trong Connection
Close: đóng kết nối với nguồn dữ liệu. Sử dụng phương
thức này để đóng Connection đang mở
Open: Thực hiện kết nối với các thông tin đã khai báo
trong ConnectionString
Dispose: Xóa mọi tài nguyên liên quan đến Connection
trên vùng nhớ
CreateCommand: Tạo và trả về 01 Command dựa vào
Connection hiện hành
Ví dụ:
ConnDB.Open()
ConnDB.Close()
ConnDB.Dispose()
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 32
Đối tượng Connection
Một số đặc tính quan trọng khác của OleDbConnection
Đặc tính Dạng data Ý nghĩa
Connection
Timeout
Int32 khoảng thời gian cố gắng tạo liên
kết
VD: ConnString= "Provider.;
Connect Tirneout=11"
Database String Trả về tên CSDL đã kết nối
ServerVersi
on
String Trả về version của nguồn CSDL
State StateConnection
(0,1,2,4,8,16)
Trả về trạng thái hiện tại của đối
tượng: actived hay hủy rồi
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 33
Đối tượng Command
Sau khi tạo kết nối đến nguồn dữ liệu, mọi thao tác trên nguồn
dữ liệu đó đều được thực hiện thông qua Command. Tùy theo
loại Connection, đối tượng Command thuộc tên miền sau:
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 34
Đối tượng Command
Khai báo và sử dụng đối tượng Command:
đối với SqlConnection:
• Dim MyCom As SqlCommand
• MyCom = New SqlCommand(ConnString, ConnDB)
đối với OleDbConnection
• Dim MyCom As OleDbCommand
• MyCom = New OleDbCommand(ConnString,ConnDB)
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 35
Đối tượng Command
II.COMMAND:
Các thuộc tính của Command:
CommandText: lệnh SQL hay tên Procedure muốn thực hiện
trên nguồn dữ liệu (đọc ghi)
CommandType:giá trị cho biết nội dung CommandText là gì
với các giá trị như sau:
Text: (mặc định)một câu lệnh SQL
StoreProcedure: tên 01 thủ tục nội
TableDirect: khi CommandType có giá trị này, CommandText là
tên của 01 bảng. Khi Command thực hiện sẽ trả về đủ các dòng
và cột ( chỉ dùng cho OleDbCommand)
Connection: Đối tượng Connection sử dụng cho Command
Parameters: Tập hợp các tham số dùng trong Command
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 36
Đối tượng Command
Các phương thức thực hiện Command
ExecuteNonquery: Dùng để gọi thực hiện các câu truy vấn
cập nhật INSERT, UPDATE, DELETE mà không quan tâm
đến dữ liện trả về.
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 37
Đối tượng Command
ExecuteReader: Trả về một đối tượng DataReader để đọc dữ
liệu mỗi lần một dòng với method Read(). DataReader đọc dữ
liệu trực tiếp từ Database => duy trì kết nối cho đến khi đọc
xong
Gọi: MyCom.ExecuteReader()
ExecuteScalar: phương thức này thực hiện lệnh của
Command và chỉ trả về giá trị của cột đầu tiên hay dòng đầu
tiên. Chúng ta thường gọi phương thức này khi muốn
Command thực hiện các lệnh tính toán Sum, COUNT, AVG
trên nguồn dữ liệu ngay lúc thực thi. Cú pháp như sau:
MyCom.ExecuteScalar()
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 38
Đối tượng Command
II.Paramater:
- Lệnh SQL trong CommandText có thể sử dụng các dấu ? thay thế
cho trị không xác định và khi thực hiện sẽ dùng đối tượng
Parameter để truyền giá trị vào các dấu ?. Tùy theo Command,
Paramater sẽ khai báo từ lớp OleDBParameter hay SQLParameter.
Cú pháp khai báo:
Dim as new OleDbParameter | SqlParameter
Dim as new OleDbParameter | SqlParameter()
Dim as new OleDbParameter | SqlParameter(,
)
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 39
Đối tượng Command
Paramater:
Các thuộc tính của Parameter:
Direction: giá trị cho biết loại tham số với các giá trị sau: (đọc ghi)
input(mặc định): loại tham số đầu vào
InputOutput: loại tham số vào và ra
Output: loại tham số ra
ReturnValue: loại tham số nhận giá trị trả về của 01 thủ tục nội,
một hàm hay một hàm do người dùng định nghĩa
OledbType / SqlDBType :kiểu dữ liệu Oledb hay SqlDB của tham
số(đọc ghi)
ParameterName: tên tham số (đọc ghhi)
Value: giá trị của tham số (đọc ghi)
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 40
Đối tượng Command
Paramater:
Ví dụ 1:
cmd.CommandText=“select * from CTNHAP where sopn=@sp”
Dim par as SqlParameter=cmd.CreateParameter()
Par.Parametername=“@sp”
Par.Value=“PN01”
cmd.Parameter.Add(Par)
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 41
Đối tượng Command
Paramater:
Ví dụ 2:
cmd.CommandText=“select * from CTNHAP where sopn=@sp and mavtu=@vt”
Dim ts1 as SqlClient.Sqlparameter=cmd.parameters.Add(“@vt”,sqlDbType.Char,4)
Ts1.Value=“S001”
Dim ts2 as SqlClient.Sqlparameter=cmd.parameters.Add(“@sp”,sqlDbType.Char,4)
Ts2.Value=“PN01”
Chú thích: thứ tự đưa tham số vào tùy ý vì phải chỉ đúng tên tham số trong SQL
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 42
Quy trình truy xuất 01 CSDL đơn giản
trong ASP.NET
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 43
Ví dụ: Create a Database Connection
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 44
Ví dụ: Create a Database Command
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 45
Ví dụ: Create a DataReader
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 46
Bind to a Repeater Control and
Close the Database Connection
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 47
Repeater Control
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 48
Tạo kết nối với CSDL động
Demo tạo kết nối và hiển thị
DataSet
DataAdapter
DataTable
DataView
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 49
DataSet
Đây là 01 mô hình thu nhỏ đáp ứng nhu cầu của ứng dụng
DataSet chứa các bảng(DataTable), các quan
hệ(DataRelation) và các ràng buộc ( Contraint)
DataSet thuộc tên miền sau: System.Data.DataSet
Các chức năng chính của DataSet:
Làm việc với dữ liệu không liên kết
Khả năng dịch chuyển, sắp sếp, tìm và lọc dữ liệu
Cache những thay đổi
Làm việc với XML-document
Khai báo Dataset
Cú pháp: New System.Data.Dataset()
Hoặc New system.Data.DataSet() với : tên của DataSet
Cách khác: Ta có thể dùng công cụ DataSet trong hộp thoại ToolBox
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 50
Ví dụ: Tạo đối tượng DataSet
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 51
DataSet
Các thuộc tính của DataSet:
DataSetName: Tên của DataSet (đọc ghi)
HasErrors: giá trị cho biết lỗi xảy ra trên 01 trong các bảng của
DataSet: True/False ( chỉ đọc)
Relations: tập hợp các quan hệ(DataRelation) một nhiều của
Dataset ( chỉ đọc)
Tables: Tập hợp các bảng (DataTable) của DataSet (chỉ đọc)
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 52
Các phương thức của Dataset
Thêm một bảng vào Dataset
Muốn đưa 01 bảng DataTable vào Dataset, chúng ta dùng
phương thức Add của tập hợp Tables:
Cú pháp:
• Tables.Add(): bảng được tạo có tên table1, table2,
• Tables.Add(): 01 bảng mới được tạo thành trong
Dataset có tên là
Chú ý: tên bảng có phân biệt chữ hoa, chữ thường
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 53
Các phương thức của Dataset
Xóa bảng ra khỏi dataset:
Tables.Remove(): xóa bảng ra khỏi tập hợp Table
Xóa bảng có chỉ số là ra khỏi tập hợp Tables:
Tables.RemoveAt()
Xóa tất cả các bảng ra khỏi danh sách: Tables.Clear()
Lệnh kiểm tra Bảng có thể xóa hay không? :
Tables.CanRemove():
• Trả về True: có thể xóa
• False: không thể xóa vì đang xử dụng
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 54
Các phương thức của Dataset
Kiểm tra bảng có thuộc về Dataset hay không ?
Tables.Contains()
Xóa bỏ mọi dữ liệu trên Dataset
Clear()
Xóa bỏ Dataset
Disponse
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 55
Các phương thức của Dataset
Để tạo 01 quan hệ giữa hai bảng trong DataSet:
Chúng ta sử dụng cú pháp Add của tập hợp Relation trong Dataset
với các cú pháp sau:
Relations.Add(,,
)
Relations.Add(,,<
DataColumn trên bảng con>, )
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 56
Các phương thức của Dataset
Xóa quan hệ khỏi DataSet: ta dùng phương thức sau:
Relations.Remove()
Xóa quan hệ ra khỏi tập hợp Relations của Dataset
Relations.Remove()
Xóa quan hệ ra khỏi tập hợp Relations của
Dataset
Kiểm tra quan hệ có xóa được hay không ?
Relations.CanRemove()
Trả về True: có thể xóa, False: không thể xóa
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 57
DataAdapter
Lấy cấu trúc và dữ liệu của các bảng trong nguồn dữ liệu về
cho DataSet và cập nhật các thay đổi về nguồn dữ liệu gốc
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 58
DataAdapter
DataAdapter là một bộ gồm bốn đối tượng Command:
SelectCommand: cho phép lấy thông tin từ nguồn dữ liệu về
InsertCommand: cho phép chèn thêm dữ liệu vào bảng trong nguồn
dữ liệu
UpdateCommand: cho phép sửa đổi dữ liệu trog nguồn dữ liệu nguồn
DeleteCommand: cho phép hủy bỏ dữ liệu trên bảng trong nguồn dữ
liệu
Ta cầ hiểu rõ nội dung lệnh truy vấ cho SelectCommand, nội dung
các đối tượng còn lại có thể sử dụng đối tượng thích hợp để tự
động phát sinh hay chỉ rõ lệnh cho từng đối tượng
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 59
DataAdapter
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 60
DataAdapter
TableMappings
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 61
DataAdapter
TableMappings
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 62
Tạo DataAdapter
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 63
Các chức năng của DataAdapter
Lấy dữ liệu từ nguồn về cho DataSet, DataTable qua method Fill
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 64
Các chức năng của DataAdapter
Lấy cấu trúc dữ liệu từ nguồn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 65
Các chức năng của DataAdapter
Tạo bộ lệnh cập nhật cho DataAdapter
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 66
DataTable
Dữ liệu các bảng trong nguồn dữ liệu được lấy về và đưa vào
các DataTable. DataTable thuộc tên miền:
System.Data.DataTable
Cách khác: Dim Bang_x as New DataTable
Cách khác: Dim bang_x as New DataTable(<tên bảng)
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 67
DataTable – Tập hợp Rows
Rows là tập hợp các dòng dữ liệu của bảng vì vậy mọi tham chiếu
đến dòng đều thông qua tập hợp này
Các chức năng chính của Rows:
Rows.Count
Rows.Item() hoặc Rows()
Rows.Item(,) hoặc
• a Rows(,)
• aRows(,)
Thêm dòng vào bảng
• Dim NewRow As DataRow
• NewRow = .NewRow()
• .Rows.Add()
Rows.Add()
Rows.Remove (), Rows.RemoveAt()
Rows.Clear()
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 68
DataTable – Tập hợp Column
Tương tự như Rows, Columns là tập hợp các cột dữ liệu của bảng vì
vậy mọi tham chiếu đến cột đều thông qua tập hợp này
Columns.Count
Columns.Item()
Columns.Item()
Columns()
Columns()
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 69
DataView
Cung cấp các phương pháp thuận tiện cho việc liên kết dữ lịêu với
các điều khiển, sắp xếp,
Tạo DataView
New DataView()
New DataView()
New DataView(,, ,
)
Ví dụ:
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
http:// lhu.edu.vn 70
Các thuộc tính của DataView
AllowDelete cho phép thao tác xóa dòng trên DataView
AllowEdit Cho phép thao tác sửa đổi trên DataView
AllowNew Cho phép thao tác thêm mới bằng AddNew
Count Số mẩu tin trên DataView
Item Trả về dòng dữ liệu trên bảng theo tham số truyền vào
RowFilter Biểu thức lọc
RowStateFilter Trạng thái dòng dữ liệu trên DataView
+ Added: dòng mới thêm nhưng chưa cập nhật
+CurrentRows: tất cả các dòng không thay đổi, mới và
đã thay đổi
+ Deleted: dòng đánh dấu hủy
+ ModifiedCurrent
+ ModifiedOriginal
+ None, OriginalRows,Unchanged
Sort sắp xếp dữ liệu trên DataView
Table Tên bảng
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Bài thực hành số 03
SQL Server
Phân tích yêu cầu
Phân tích hướng dẫn
http:// lhu.edu.vn 71
LHU 72
www.themegallery.com
Các file đính kèm theo tài liệu này:
- chuong03_dataprocessingwithado_net_1571_1994180.pdf