1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài giảng Lập trình web ASP.NET: Chương 4 - TS. Vũ Đức Lung, KS. Phan Hữu Tiếp

72 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Chương 4: Xử Lý Dữ Liệu Với ADO.NET
Tác giả Ts. Vũ Đức Lung, Ks. Phan Hữu Tiếp
Trường học Trường Đại Học Lạc Hồng
Chuyên ngành Lập trình web ASP.NET
Thể loại Bài giảng
Năm xuất bản 2009 - 2010
Thành phố Lạc Hồng
Định dạng
Số trang 72
Dung lượng 4,83 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong lĩnh vực Công Nghệ Thông Tin nói riêng, yêu cầu quan trọng nhất của người học đó chính là thực hành. Có thực hành thì người học mới có thể tự mình lĩnh hội và hiểu biết sâu sắc với lý thuyết. Với ngành mạng máy tính, nhu cầu thực hành được đặt lên hàng đầu. Tuy nhiên, trong điều kiện còn thiếu thốn về trang bị như hiện nay, người học đặc biệt là sinh viên ít có điều kiện thực hành. Đặc biệt là với các thiết bị đắt tiền như Router, Switch chuyên dụng

Trang 1

LHU

http://lhu.edu.vn

1

LẬP TRÌNH WEB ASP.NET

Ts Vũ Đức Lung

Ks Phan Hữu Tiếp

Xử Lý Dữ Liệu Với ADO.NET

Chương 4:

Trang 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

Trang 3

http:// lhu.edu.vn

3

Trang 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

Trang 5

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

Trang 6

Giới thiệu về ADO.NET

Trang 7

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

Trang 8

Giới thiệu về ADO.NET

Trang 9

 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

Trang 10

Các thành phần trong ADO.NET

Trang 11

 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ớ

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

Trang 13

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

Trang 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

Trang 15

 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

Trang 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ử

Trang 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

Trang 19

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

Trang 20

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" %>

- Thiết kế tối ưu cho CSDL SQL server

Trang 21

 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

Trang 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:

Trang 23

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

Trang 24

Đối tượng Connection

Trang 25

http:// lhu.edu.vn

25

Đối tượng Connection

 Ví dụ 3: Tạo connection đến CSDL SQL Server

Trang 26

Đối tượng Connection

 Ví dụ 4: Tạo connection đến CSDL SQL Server

Trang 27

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

Trang 28

CÁC ĐỐI TƯỢNG TRONG ADO.NET

Trang 29

Đăng nhập bằng username và password

Provider=SQLOLEDB.1;Persist Security Info=False;User

ID=etest;Initial Catalog=ETEST;Data Source=GOATM

Trang 30

CÁC ĐỐI TƯỢNG TRONG ADO.NET

Trang 31

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

Trang 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 String Trả về version của nguồn CSDL

Trang 33

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:

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

Trang 35

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

Trang 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ề

Trang 37

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

Trang 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 <tên parameter> as new OleDbParameter | SqlParameter

Dim <tên parameter> as new OleDbParameter | SqlParameter(<tên>) Dim <tên parameter> as new OleDbParameter | SqlParameter(<tên>,

Trang 39

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)

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

Trang 41

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(“@s p”,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

Trang 42

trong ASP.NET

Trang 43

http:// lhu.edu.vn

43

Ví dụ: Create a Database Connection

Trang 44

Ví dụ: Create a Database Command

Trang 45

http:// lhu.edu.vn

45

Ví dụ: Create a DataReader

Trang 46

Close the Database Connection

Trang 47

http:// lhu.edu.vn

47

Repeater Control

Trang 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

Trang 49

http:// lhu.edu.vn

49

DataSet

hệ(DataRelation) và các ràng buộc ( Contraint)

 DataSet thuộc tên miền sau: System.Data.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

 Khai báo Dataset

 Cú pháp: New System.Data.Dataset()

 Hoặc New system.Data.DataSet(<tên>) với <tên>: tên của DataSet

 Cách khác: Ta có thể dùng công cụ DataSet trong hộp thoại ToolBox

Trang 50

Ví dụ: Tạo đối tượng DataSet

Trang 51

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)

Trang 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(<tên bảng>): 01 bảng mới được tạo thành trong Dataset có tên là <tên bảng>

 Chú ý: tên bảng có phân biệt chữ hoa, chữ thường

Trang 53

http:// lhu.edu.vn

53

Các phương thức của Dataset

 Xóa bảng ra khỏi dataset:

 Tables.Remove(<bảng>): xóa bảng ra khỏi tập hợp Table

 Xóa bảng có chỉ số là <chỉ số> ra khỏi tập hợp Tables: Tables.RemoveAt(<chỉ số>)

 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(<bảng>):

• Trả về True: có thể xóa

• False: không thể xóa vì đang xử dụng

Trang 54

Các phương thức của Dataset

 Kiểm tra bảng có thuộc về Dataset hay không ?

Trang 55

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(<tên quan hệ>,<mảng DataColumn trên bảng cha>,

<mảng DataColumn trên bảng con>)

Relations.Add(<tên quan hệ>,< DataColumn trên bảng cha>,<

DataColumn trên bảng con>, < tạo ràng buộc>)

Trang 56

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(<quan hệ>)

 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

Trang 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

Trang 59

http:// lhu.edu.vn

59

DataAdapter

Trang 60

DataAdapter

 TableMappings

Trang 61

http:// lhu.edu.vn

61

DataAdapter

 TableMappings

Trang 62

Tạo DataAdapter

Trang 63

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

Trang 64

Các chức năng của DataAdapter

 Lấy cấu trúc dữ liệu từ nguồn

Trang 65

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

Ngày đăng: 02/07/2023, 20:35

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w