Trường Đại Học Lạc Hồng 2009 - 2010
LẬP TRÌNH WEB ASP.NET
Ts. Vũ Đức Lung Ks. Phan Hữu Tiếp
Chương 4:
Xử Lý Dữ Liệu Với ADO.NET
http://lhu.edu.vn
1
LHU
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
2 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
3 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
4 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
5 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Giới thiệu về ADO.NET
6 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
7 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Giới thiệu về ADO.NET
Các thành phần trong ADO.NET
DataSet DataTable DataView DataRow DataColumn DataRelation
8 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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.
9 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Các thành phần trong ADO.NET
10 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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ớ .
11 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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)
12 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
13 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
14 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
15 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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ý
16 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
17 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
18 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đ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
19 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Các đối tượng trong ADO.NET
Khai báo và sử dụng không gian tên (namespace)
<%@ Import Namespace="System.Data.OleDb" %>
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
20 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đố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
21 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đố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:
22 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đối tượng Connection
Ví dụ 1: Tạo connection đến CSDL Microsoft Access
Ví dụ 2: Tạo connection đến CSDL SQL Server
23 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đối tượng Connection
24 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đối tượng Connection
Ví dụ 3: Tạo connection đến CSDL SQL Server
25 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đối tượng Connection
Ví dụ 4: Tạo connection đến CSDL SQL Server
26 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
27 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
5. Nhấn TestConnection
4. Chọn Database sử dụng
28 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
29 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
Info=False;Initial
Security=SSPI;Persist Catalog=ETEST;Data Source=GOATM”
Dim ConnDB as new SqlConnection(strconnection)
30 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đố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()
31 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đố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
Int32
Connection Timeout
khoảng thời gian cố gắng tạo liên kết VD: ConnString= "Provider….; Connect Tirneout=11"
String
Database
Trả về tên CSDL đã kết nối
String
Trả về version của nguồn CSDL
ServerVersi on
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
32 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đố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:
33 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đố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)
34 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đố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
35 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đố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ề.
36 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đố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()
37 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đố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
38 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đố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)
39 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đố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)
40 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Đố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
41 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp Quy trình truy xuất 01 CSDL đơn giản trong ASP.NET
42 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Ví dụ: Create a Database Connection
43 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Ví dụ: Create a Database Command
44 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Ví dụ: Create a DataReader
45 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Bind to a Repeater Control and Close the Database Connection
46 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Repeater Control
47 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
48 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
DataSet
chứa
Đây là 01 mô hình thu nhỏ đáp ứng nhu cầu của ứng dụng DataSet
bảng(DataTable),
các
quan
các 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(
49 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Ví dụ: Tạo đối tượng DataSet
50 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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)
51 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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(
Dataset có tên là
Chú ý: tên bảng có phân biệt chữ hoa, chữ thường
52 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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à
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
53 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Các phương thức của Dataset
Kiểm tra bảng có thuộc về Dataset hay không ?
Tables.Contains(
Clear()
Xóa bỏ Dataset Disponse
54 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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>, < tạo ràng buộc>)
55 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Các phương thức của Dataset
ta dùng phương
thức sau:
Xóa quan hệ khỏi DataSet:
Relations.Remove()
Xóa quan hệ ra khỏi tập hợp Relations của Dataset Relations.Remove(< tên quan hệ>) Xóa quan hệ < tên quan hệ> ra khỏi tập hợp Relations của
Dataset
56
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
http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
57 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
58 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
DataAdapter
59 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
DataAdapter
TableMappings
60 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
DataAdapter
TableMappings
61 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Tạo DataAdapter
62 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Các chức năng của DataAdapter
Lấy dữ liệu từ nguồn về cho DataSet, DataTable qua method Fill
63 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Các chức năng của DataAdapter
Lấy cấu trúc dữ liệu từ nguồn
64 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
Các chức năng của DataAdapter
Tạo bộ lệnh cập nhật cho DataAdapter
65 http:// lhu.edu.vn
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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( 66 http:// lhu.edu.vn 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( • a Rows( Thêm dòng vào bảng • Dim NewRow As DataRow
• NewRow = Rows.Add( 67 http:// lhu.edu.vn 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( 68 http:// lhu.edu.vn 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(, xếp>, Ví dụ: 69 http:// lhu.edu.vn 70 http:// lhu.edu.vn SQL Server
Phân tích yêu cầu
Phân tích hướng dẫn 71 http:// lhu.edu.vn www.themegallery.com 72Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
DataTable – Tập hợp Rows
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
DataTable – Tập hợp Column
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
DataView
Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp
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
http://lhu.edu.vn
LHU