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 as new OleDbParameter | SqlParameter Dim as new OleDbParameter | SqlParameter() Dim as new OleDbParameter | SqlParameter(,

)

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() 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

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(): 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

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à 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

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()  Xóa bỏ mọi dữ liệu trên Dataset

 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 cha>,<

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

Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

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()

67 http:// lhu.edu.vn

Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

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()

68 http:// lhu.edu.vn

Ts. Vũ Đức Lung – Ks. Phan Hữu Tiếp

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(,,

xếp>,

)

 Ví dụ:

69 http:// lhu.edu.vn

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

70 http:// lhu.edu.vn

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

71 http:// lhu.edu.vn

www.themegallery.com

http://lhu.edu.vn

72

LHU