gi Ới thi Ệu ado i ni ệm ứng dụng csdl Định ngh ĩa “Ứng dụng csdl”:...

Post on 15-Mar-2018

223 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

GIỚI THIỆU ADO.NET

2

Nội dung

� Khái niệm ứng dụng CSDL

� Kiến trúc ADO.NET

� Kết nối đến CSDL

3

KHÁI NIỆM ỨNG DỤNG CSDL

4

Khái niệm ứng dụng CSDL

� Định nghĩa “Ứng dụng CSDL”: Ứng dụng CSDL Data–Centric Applications hay Database–Centric Applications hay Data–Driven Application

là loại ứng dụng mà dữ liệu hay CSDL đóng vaitrò tiên quyết.

� Ví dụ: • Chương trình quản lý nhà sách• Hệ thống chương trình quản lý ngân hàng

5

Khái niệm ứng dụng CSDL

Database

Application

6

Khái niệm ứng dụng CSDL

� Định nghĩa “Data source” (Data storage): Nơi lưutrữ dữ liệu. Thông thường là Database

� Một số loại Data source được hổ trợ trong .NET• MS SQL Server, Oracle, DB2, MS Access, …

7

KIẾN TRÚC ADO.NET

8

Kiến trúc ADO.NET

Data sourceADO.NET

9

Kiến trúc ADO.NET

� ADO.NET là gì?

Data sourceApplication(C#, VB.NET, …)

Thư việntruy cập dữ liệu

ADO.NET

• ADO.NET là một thư viện chứa các lớp thực hiện các

chức năng

– Kết nối ứng dụng với data source

– Thêm, xóa, sửa, tìm kiếm dữ liệu trong data source

Data–Driven Application

10

Kiến trúc ADO.NET

11

Kiến trúc ADO.NET Những đối tượng quan trọng trong ADO.NET

� Kiến trúc ADO.NET được chia làm 2 phần• Connected• Disconnected

� Những lớp khác nhau của ADO.NET có thểphân loại thành: Connected và Disconnected. Ngoại lệ là lớp DataAdapter

12

Kiến trúc ADO.NET Những đối tượng quan trọng trong ADO.NET

ApplicationDatabaseDataAdapter

Đối tượng Disconnected Đối tượng Connected

DataSetDataTableDataRow

ConnectionCommandParameter

ADO.NET

13

Kiến trúc ADO.NET Những đối tượng quan trọng trong ADO.NET

� Các đối tượng Connected• Connection• Command• Parameter• DataAdapter• DataReader• Transaction

14

Kiến trúc ADO.NET Những đối tượng quan trọng trong ADO.NET

� Các đối tượng Disconnected• DataSet• DataTable• DataRow• DataColumn• DataView• Constraint• DataRelation

15

Kiến trúc ADO.NET .NET Data Providers

� ADO.NET hiện thực (bao gồm) tập các lớpconnected cho từng loại CSDL • Ví dụ: Để kết nối với MS SQL Server, chúng ta có lớp

giành riêng là SqlConnection, SqlCommand, SqlParameter, …

� Tập các lớp connected cho một CSDL nào đó đượcnằm trong 1 namespace riêng• Ví dụ:

– System.Data.SqlClient– System.Data.OleDb

� Định nghĩa “.Net Data Provider”: Là một tập lớpconnected nằm trong cùng 1 namespace và đượcthiết kế để làm việc với một loại CSDL cụ thể

16

Kiến trúc ADO.NET .NET Data Providers

ApplicationData

SourceDataAdapter

Đối tượng Disconnected

Đối tượng ConnectedDataSet

DataTableDataRow

ConnectionCommandParameter

.Net Data Provider

17

Kiến trúc ADO.NET .NET Data Providers

� Các loại .Net Data Provider

Tên Data Source Provider Namespace

MS SQL Server 7.0 trở lên System.Data.SqlClient

Oracle 8.1.6 trở lên System.Data.OracleClient

ODBC System.Data.ODBC

OleDb System.Data.OleDb

XML trong SQL Server System.Data.SqlXml

18

Kiến trúc ADO.NET .NET Data Providers

� Chọn lựa .NET Data Provider • SQL Server .NET Data Provider

– SQL Server version 7.0 trở lên

• Oracle .NET Data Provider– Oracle 8.1.6 trở lên

• OLE DB .NET Data Provider– SQL Server 6.5, Microsoft Access, Oracle version <

8.1.6, những data sources có OLE DB providers

• ODBC .NET Data Provider– Dùng cho các data sources chỉ hổ trợ ODBC drivers

19

Kiến trúc ADO.NET

� Các namespace quan trọng trong ADO.NET• System.Data• System.Data.Common• System.Data.SqlClient• System.Data.SqlTypes• System.Data.OleDb

20

KẾT NỐI ĐẾN CSDL

21

Kết nối đến CSDL

� Có 2 cách• Dùng phương pháp kéo thả

• Tự viết code

22

KẾT NỐI ĐẾN CSDL(PHƯƠNG PHÁP KÉO THẢ)

23

Kết nối đến CSDLPhương pháp kéo thả

� Bước 1: Thiết lập Data Source• Dùng Data Source là SQL Server 2008• Tên CSDL: StarterDB• Tên Table: TableName

Create Table TableName(

IDName int primary key,ValueName varchar(100)

)Go

Insert into TableName values(‘1’, ‘Hello’)Go

24

Kết nối đến CSDLPhương pháp kéo thả

� Bước 2: Tạo ứng dụng Windows Forms• Tên ứng dụng: VDKeoTha• Mở form Form1 trong Design mode

� Bước 3: Mở cửa sổ Data Source• Chọn Data � Show Data Sources• Trong cửa số Data Source: Click vào liên kết

Add New Data Source

25

Kết nối đến CSDLPhương pháp kéo thả

� Bước 4: Chọn loại Data Source• Chọn Database• Click nút Next

26

Kết nối đến CSDL Phương pháp kéo thả

� Bước 5: Thiết lập thông tin kết nối• Click vào nút New Connection• Chọn Microsoft SQL Server• Click nút “Continue”

27

Kết nối đến CSDL Phương pháp kéo thả

• Điền các thông tin vềCSDL

• Click Test Connectionđể kiểm tra thông tinnhập vào

• Click OK 2 lần để chấpnhận Data Source

28

Kết nối đến CSDL Phương pháp kéo thả

• Thông tin kết nối được lưu trong 1 chuỗi kếtnối (Connection string)

29

Kết nối đến CSDL Phương pháp kéo thả

� Bước 6: Chọn lưu chuỗi kết nối

30

Kết nối đến CSDL Phương pháp kéo thả

� Bước 7: Chọn các đối tượng trong CSDL• Chọn các bảng, các cột• Click nút Finish

31

Kết nối đến CSDL Phương pháp kéo thả

� Bước 8: Chọn các hiển thị dữ liệu trên Form• Lúc này một data source có tên

StarterDataSet được thêm vào ứng dụng• Click nút Drop-Down kế bảng TableName�Chọn DataGridView

32

Kết nối đến CSDL Phương pháp kéo thả

� Bước 9: Kéo và Thả

• Kéo bảng TableName vào trong Form1

• Thao tác trên sinh ra một số controls

33

Kết nối đến CSDL Phương pháp kéo thả

� Một số code do IDE sinh ra• Chuỗi kết nối trong file app.config

34

Kết nối đến CSDL Phương pháp kéo thả

• Code trong form

35

KẾT NỐI ĐẾN CSDL(PHƯƠNG PHÁP TỰ CODE)

36

Kết nối đến CSDL

� Bước 1: using một số namespace

� Bước 2: Tạo kết nối: Tạo chuỗi kết nối + Đốitượng kết nối

� Bước 3: Tạo đối tượng command chứa câuSQL

� Bước 4: Mở kết nối

� Bước 5: Chạy command� Bước 6: Đóng kết nối

� Bước 7: Hiện dữ liệu

37

Kết nối đến CSDL Namespace

� Với OLE DB• using System.Data;• using System.Data.OleDb;

� Với SQL Server• using System.Data;• using System.Data.SqlClient;

38

Kết nối đến CSDL Chuỗi kết nối

39

Kết nối đến CSDL Chuỗi kết nối

40

Kết nối đến CSDL Chuỗi kết nối

� Để mở kết nối, chúng ta cần chỉ ra một số thôngtin (tham số): tên server, tên csdl, user ID, password, …

� Mỗi data source cần một tập các thông tin khácnhau

� Định nghĩa “Chuỗi kết nối” (Connection String): Là 1 tập các thông tin cung cấp cho một thiếtlập kết nối (tham số), và có hình thức các cặpkey-value cách nhau bằng dấu “;”

parameterName1=value1; parameterName2=value2;…

41

Chuỗi kết nốiChuỗi kết nối cho OleDB và MS SQL Server

� Chuỗi kết nối cho CSDL OleDB (MS Access)"Provider=Microsoft.Jet.OleDb.4.0;

Data Source=DuLieu.mdb"

� Chuỗi kết nối cho CSDL MS SQL Server"Server hay Data source=tenServer;

Database hay Initial Catalog=tenCSDL;

User Id=tenUser;

Password=tenPass"

"Server=local;

Database=pubs;

Integrated Security=SSPI"

42

Kết nối đến CSDL Chuỗi kết nối

� Bảo mật CSDL SQL Server• Windows Authentication

• Mixed Mode – Windows Authentication– SQL Server Authentication

43

Kết nối đến CSDL Chuỗi kết nối

� Một số từ khóa liên quan đến chuỗi kết nối cho SQL Server

Thời gian chờ (tính bằng giây) khi kết nối đến data store. Default là 15 giây.

Connect Timeout, connection

timeout, timeout

Số connection tối thiểu được lưu trong connection pool. Default là 0.

Min Pool Size

Số connection tối đa được lưu trong connection pool. Default là 100.

Max Pool Size

Khi bằng true, dùng pool để lưu trữ các connection. Default là true

Pooling

password để kết nối đến SQL Server khi không dùng trusted connection.

Password, pwd

user name để kết nối đến SQL Server khi không dùngtrusted connection.

User ID, uid, user

Bảo mật dựa trên HĐH Windows. Có thể gán bằng true, false, hay sspi. Default là false.

Integrated Security, trusted_connection

Tên của databaseInitial Catalog, Database

Tên hay địa chỉ của database server.Data Source, Server, addr, address, network address

Ý nghĩaKeyword

44

Kết nối đến CSDL Đối tượng Connection

� Tạo đối tượng kết nối� Kết hợp đối tượng kết nối với chuỗi kết nối

� Dùng Constructor của lớp Connection

45

Kết nối đến CSDL Đối tượng Connection

� Tạo một đối tượng của lớp Connection (tương ứng với data source cho trước)

SqlConnection conn = new SqlConnection();

� Chỉ ra các tham số kết nối dùng property ConnectionString

string strConn =

"Data Source=(local);

Initial Catalog=demoDB;

Integrated Security=SSPI";

conn.ConnectionString=strConn;

46

Kết nối đến CSDL Đối tượng Connection

� Có thể dùng constructor của lớp Connection

string strConn =

"Data Source=(local);

Initial Catalog=demoDB;

Integrated Security=SSPI";

SqlConnection conn = new SqlConnection(strConn);

47

Kết nối đến CSDL Đối tượng Connection

� Mở kết nối� Đóng kết nối

� Kiểm tra trạng thái đối tượng Connection

48

Kết nối đến CSDL Đối tượng Connection

� Phương thức Open()

� Một số bước được thực hiện khi mở kết nối MỚI• Thiết lập kênh vật lý (socket hay pipe)• Bắt tay với Server• Phân tích chuỗi kết nối• Xác thực với Server• …

tốnthời gian

49

Kết nối đến CSDL Đối tượng Connection

� Phương thức Close()• Đặt connection đã mở vào connection pooler

� Phương thức Dispose()• Đặt connection vào connection pooler• Giải phóng các tài nguyên (Cho phép GC dọn dẹp)

50

Kết nối đến CSDL Đối tượng Connection

� Property State• ConnectionState.Open• ConnectionState.Closed

SqlConnection conn = new SqlConnection(strConn);

if (conn.State == ConnectionState.Open)

{

conn.Close();

}

51

Kết nối đến CSDL Đối tượng Connection

string strConn =

"Data Source=(local);

Initial Catalog=demoDB;

Integrated Security=SSPI";

SqlConnection conn = new SqlConnection(strConn);

try

{

conn.Open();

//…

}

catch (SqlException ex)

{

//…

}

finally

{

conn.Dispose();

}

52

Lưu trữ chuỗi kết nối

� Lưu trong file cấu hình: app.config• .Net 1.x<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<appSettings>

<add key="ConnectionString" value="..."/>

</appSettings>

</configuration>

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<connectionStrings>

<add name="tên" connectionString="..."/>

</connectionStrings>

</configuration>

• .Net 2.0

53

Lưu trữ chuỗi kết nối

� Đọc chuỗi kết nối từ file app.config• References: System.configuration• Namespace: using System.Configuration;• Sử dụng lớp: ConfigurationManager

string strConn;

strConn = ConfigurationManager.ConnectionStrings["ten"].ConnectionString;

54

Tóm tắt

� ADO.NET là thư viện giúp việc kết nối giữa ứng dụngvà data source. Thư viện này nằm trong System.Data

� ADO.NET gồm 2 phần• Disconnected• Connected

� Phần Disconnected sử dụng phần Connected để kếtnối với data source

� Một số tiếp cận viết code ADO.NET• Phương pháp Drap-and-drop• Phương pháp Tự viết code

top related