1. Trang chủ
  2. » Công Nghệ Thông Tin

LẬP TRÌNH THIẾT KẾ WEB 2 THAO TÁC CSDL VỚI ADO.NET

15 271 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

Định dạng
Số trang 15
Dung lượng 821,06 KB

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

Nội dung

crosoft cung cấp hai sản phẩm giúp tích hợp một số ứng dụng đang tồn tại: BizTalk Server cho sự tích hợp ứng dụng, quản lý quá trình trong doanh nghiệp và vấn đề thương mại giữa các doanh nghiệp. Host Integration Server cho tích hợp và cấu hình bảo mật tin cậy cho người dùng với IBM zSeries mainframe, các ứng dụng host tầm trung bình iSeries và các cơ sở dữ liệu IBM DB2. Cả hai sản p

Trang 1

L p trình và Thi t k Web 2

Bài 7

Thao

Thao tác tác CSDL CSDL v i v i ADO NET ADO NET

Ths Tr n Th Bích H nh

Khoa CNTT

© 2009 Khoa Công ngh thông tin

N i

N i dung dung

N i

N i dung dung

 Gi i thi u ADO NET

 Ki n trúc ADO NET

 Mô hình s d ng ADO NET

 NET Data Provider

© 2009 Khoa CNTT - HKHTN

2

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

N i dung

 Gi i thi u ADO NET

 Ki n trúc ADO.NET

 Mô hình s d ng ADO NET

 NET Data Provider

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

ADO NET ADO NET là là gì gì? ? ADO.NET ADO.NET là là gì gì? ?

 ADO.NET

A ti X D t Obj t NET – ActiveX Data Object NET – Công ngh c a Microsoft Phát t i t ADO

– Phát tri n t ADO – Cung c p các đ i t ng và hàm th vi n dùng đ k t

n i và x lý trên CSDL ý

Trang 2

S l l c c l ch l ch s s phát phát tri n tri n

S

S l l c c l ch l ch s s phát phát tri n tri n

Native API

DB API

DB API

DB API

Application

Database

D i

DB API

O pen D ata B ase C onnectivity

ODBC

Driver Driver

Driver

DB API

© 2009 Khoa CNTT - HKHTN

Application

Database

5

S

S l l c c l ch l ch s s phát phát tri n tri n ((tt tt)) S

S l l c c l ch l ch s s phát phát tri n tri n ((tt tt))

Provider Provider

ADO OLE DB

Non-Relational Data

Provider Provider Provider

Application

ODBC Driver Driver

o de

Relational Data Driver

© 2009 Khoa CNTT - HKHTN

6

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

S

S l l c c l ch l ch s s phát phát tri n tri n ((tt tt))

S

S l l c c l ch l ch s s phát phát tri n tri n ((tt tt))

.NET Data Provider

Oracle SQL Server

Relational Data OLE DB

Oracle

OLE DB ADO.NET

Application

ODBC

Non-Relational Data ODBC

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

N i dung

 Gi i thi u ADO.NET

 Ki n trúc ADO NET

 Mô hình s d ng ADO NET

 NET Data Provider

Trang 3

Ki n trúc c a ADO NET

© 2009 Khoa CNTT - HKHTN

9

Namespaces

 N u ng d ng NET c n truy xu t d li u  Ph i khai báo namespace ADO NET t ng ng v i d li u cho ng d ng namespace ADO.NET t ng ng v i d li u cho ng d ng

 i v i d li u OLE

 i v i d li u OLE

using System.Data;

using g System.Data.OleDB; y ;

 i v i d d li u SQL Server u SQ Se e

using System.Data;

using System.Data.SqlClient;

© 2009 Khoa CNTT - HKHTN

10

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

N i dung

 Gi i thi u ADO.NET

 Ki n trúc ADO NET

 Mô hình s d ng ADO NET

 NET Data Provider

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

Mô hình s d ng ADO.NET v i Ph n m m

SqlDataReader DataSet

SqlConnection SqlDataAdapter

SqlCommand

SQL

12

Trang 4

Mô hình s d ng ADO NET v i Ph n m m

Mô hình s d ng ADO NET v i Ph n m m

Mô hình s d ng ADO.NET v i Ph n m m

3 SqlDataReader

Select 1

3

SqlConnection

1

1 Insert

Delete Update

StoreProcedure

Functions

© 2009 Khoa CNTT - HKHTN 13

13

Mô hình s d ng ADO NET v i Ph n m m

Mô hình s d ng ADO NET v i Ph n m m

Mô hình s d ng ADO.NET v i Ph n m m

4

DataSet

5

SqlConnection

5

Select Insert

1

Delete Update

SqlCommand

© 2009 Khoa CNTT - HKHTN 14

14

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

N i dung

 Gi i thi u ADO.NET

 Ki n trúc ADO NET

 Mô hình s d ng ADO NET

 NET Data Provider

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

NET Data Provider NET Data Provider

 Connection

 Command & Parameter

 DataReader

 DataSet & DataAdapter

 Transaction

Trang 5

NET Data Provider

NET Data Provider Connection Connection

.NET Data Provider

.NET Data Provider Connection Connection

Data Source Connection

Application

SQL

 Thi t l p k t n i đ n Data Source

Data Source Application

 Thu c tính

ConnectionString: L u chu i k t n i đ n Data Source

State: cho bi t tình tr ng c a k t n i g

 Ph ng th c

Open(): thi t l p k t n i đ n Data Source.

© 2009 Khoa CNTT - HKHTN

Close(): ng t k t n i đ n Data Source.

17

Ví d d Ví

Ví d d

using System.Data.SqlClient;

string sConnectionString =

Data Source =localhost;

user =sa; ;

password =sa;”;

SqlConnection cnn = new SqlConnection ();

SqlConnection cnn = new SqlConnection ();

 cnn ConnectionString = sConnectionString;

 // do somethings

© 2009 Khoa CNTT - HKHTN

 cnn Close ();

18

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

Connection string (Access, SQL Server,…)

 T o connection string

 T o connection string

Database ODBC/OLEDB Connection String

Microsoft Access Provider=Microsoft.Jet.OLEDB.4.0; Data Source= ngD n nFileAccess

Microsoft SQL Provider=SQLOLEDB;Data Source=ServerName; Initial Catalog=DatabaseName;

UserId=Username; Password=Password;

String strConn = string.Format(“ Provider=Microsoft.Jet.OLEDB.4.0; Data

Source= {0}”, HttpContext.Current.Server.MapPath(“database/mydb.mdb”));

REF: http://www.connectionstrings.com/

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

ng d n t i t p tin Access

 HttpContext.Current Server.MapPath (StringPath) – ánh x đ ng d n t ng đ i StringPath thành đ ng d n

đ n th m c v t lý trên Server

– Ví d : Gi s t p tin aspx s d ng hàm Server MapPath

– Ví d : Gi s t p tin aspx s d ng hàm Server.MapPath

đ c l u t i D:\MyWebsite

K t qu

S M P th(“ DB db”) D \M W b it \ DB db

Server.MapPath(myDB.mdb); D:\MyWebsite\myDB.mdb

Server.MapPath(“Database/myDB.mdb”); D:\MyWebsite\Database\myDB.mdb

Server.MapPath(“ /myDB.mdb”); D:\myDB.mdb

Trang 6

C u

C u hình hình l u l u ConnectionString ConnectionString trong trong Web Config Web Config

C u

C u hình hình l u l u ConnectionString ConnectionString trong trong Web.Config Web.Config

// Web.Config

<configuration>

<connectionStrings>

<add name=“ OleDbConnectionString "

connectionString=“ Provider=Microsoft.Jet.OLEDB.4.0; Data

Source= |DataDirectory|\ DatabasePath" />

<add name=“ SqlConnectionString "

connectionString=" SQLOLEDB;Data Source= ServerName ; Initial

Catalog= DatabaseName ; UserId= Username ; Password= Password" />

</connectionStrings>

b

<system.web>

</system.web>

</configuration>

// WebForm.aspx.cs

using System.Configuration;

string strConn

© 2009 Khoa CNTT - HKHTN

21

string strConn =

ConfigurationManager.ConnectionStrings[“ SqlConnectionString "].ToString();

Connection Pooling

 SqlConnection conn = new SqlConnection();

conn.ConnectionString =

"Integrated Security=SSPI;Initial Catalog=northwind";

conn.Open(); // Pool A is created .

 SqlConnection conn = new SqlConnection();

conn.ConnectionString =

"Integrated Security=SSPI;Initial Catalog=pubs";

conn.Open();

// Pool B is created because the connection strings differ.

 SqlConnection conn = new SqlConnection();

conn.ConnectionString =

"Integrated Security=SSPI;Initial Catalog=northwind";

© 2009 Khoa CNTT - HKHTN

conn.Open(); // The connection string matches pool A.

22

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

NET Data Provider

.NET Data Provider

 Connection

 Command & Parameter

 DataReader

 DataSet & DataAdapter

 Transaction

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

.NET Data Provider NET Data Provider – – Command & Parameter Command & Parameter SqlDataReader

3

SqlConnection SqlCommand

Select

2

1

1

2 2

Insert

SqlParameter

SQL

Delete Update StoreProcedure Functions

 Th c thi câu truy v n

Functions

 H tr tham s vào, tham s ra, và giá tr tr v

Trang 7

Command Hàm Hàm kh i kh i t o t o và và Thu c Thu c tính tính

Command

Command Hàm Hàm kh i kh i t o t o và và Thu c Thu c tính tính

Các hàm kh i t o

new ???Command()

new ???Command(cmdText)

new ???Command(cmdText, connection)

new ???Command(cmdText, connection, transaction)

Thu c tính Ý ngh a

Connection Tr đ n đ i t ng k t n i

.Connection Tr đ n đ i t ng k t n i

.CommandType CommandType.Text (m c đ nh)

CommandType.StoreProcedure CommandType.TableDirectyp

.CommandText Câu truy v n SQL ho c tên Store, tên B ng

.CommandTimeOut Th i gian ch đ i th c thi 1 câu sql

Parameters Danh sách các tham s truy n vào

© 2009 Khoa CNTT - HKHTN

.Parameters Danh sách các tham s truy n vào

25

Command Command Ph Ph ng ng th c th c Command

Command Ph Ph ng ng th c th c

Ph ng th c Ý ngh a

Ph ng th c Ý ngh a

.ExecuteReader() Tr v m t DataReader

.ExecuteNonQuery() Tr v s l ng dòng b nh h ng trên CSDL

.ExecuteScaler() Tr v 1 giá tr đ u tiên (VD: giá tr tính t ng)

.ExecuteXMLReader() Tr v 1 XMLReader

© 2009 Khoa CNTT - HKHTN

26

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

 using System.Data.OleDb;

 OleDbConnection cnn = new OleDbConnection();

cnn ConnectionString =

string.Format ("Provider=Microsoft.Jet.OLEDB.4.0; Data

string.Format ( Provider Microsoft.Jet.OLEDB.4.0; Data

Source={0}", Server.MapPath ("~/App_Data/QLHS.mdb"));

OleDbCommand cmd = new OleDbCommand();

cmd Connection = cnn ;

cmd CommandText = "INSERT INTO HocSinh(id_hocsinh,

tenhocsinh, dtb)VALUES(5, 'Nguy n V n A', 8.5)";

cmd CommandType = CommandType.Text;

 cnn Open ();

cmd ExecuteNonQuery();

cmd ExecuteNonQuery();

cnn Close ();

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

 using System.Data.SqlClient ;

 SqlConnection cnn = new SqlConnection ();

 cnn cnn ConnectionString ConnectionString = " Initial Catalog Initial Catalog =Northwind; Northwind;

Data Source =localhost; user =sa; password =sa;”;

SqlCommand cmd = new SqlCommand ();

cmd Connection = cnn;

cmd CommandText = "SELECT COUNT(*) FROM Orders";

cmd CommandType yp = CommandType.Text yp ;

 cnn Open();

int count = (int)cmd.ExecuteScalar();

cnn Close();

Trang 8

NET Data Provider

NET Data Provider Parameter Parameter

.NET Data Provider

.NET Data Provider Parameter Parameter

nh ngh a tham s tr n ào cho đ i t ng Command

 nh ngh a tham s truy n vào cho đ i t ng Command

 Có các thu c tính sau :

Thu c tính Ý ngh a

ParameterName Tên tham s

SqlDbType Ki u d li u c a tham s t ng ng v i ki u d li u c a SqlServer

Direction Input, Output, InputOutput, ReturenValue, …

Size Kích th c t i đa c a d li u

Value Giá tr c a tham s (input / Output)

© 2009 Khoa CNTT - HKHTN

29

Parameter Parameter – – Cách Cách s s d ng Parameter

Parameter – – Cách Cách s s d ng

 M c đích s d ng:

 M t vài giá tr trong câu l nh ch bi t khi th c hi n câu l nh.

 C n th c hi n câu l nh nhi u l n v i các giá tr khác nhau.

 Các b c th c hi n:

 Tham s hóa câu truy v n: ? ho c @[tên tham s ]

 Tham s hóa câu truy v n: ? ho c @[tên tham s ].

 T o các parameters t ng ng cho command.

 t giá tr cho các parameter m i khi dùng command th c hi n câu l nh

câu l nh.

© 2009 Khoa CNTT - HKHTN

30

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

Parameter

Parameter – – Tham Tham s s hóa hóa câu câu truy truy v n v n

Parameter

Parameter – – Tham Tham s s hóa hóa câu câu truy truy v n v n

cmd CommandTe t

cmd.CommandText =

“SELECT * FROM HocSinh WHERE tenhocsinh = @ten ”;

cmd.CommandText =

“INSERT INTO HocSinh(id hocsinh, tenhocsinh, dtb)” + INSERT INTO HocSinh(id_hocsinh, tenhocsinh, dtb) +

“VALUES( @id, @ten, @dtb )”;

cmd.CommandText =

“SELECT * FROM HocSinh WHERE tenhocsinh = ? ”;

cmd.CommandText =

“INSERT INTO HocSinh(id_hocsinh, tenhocsinh, dtb)” +

“VALUES( ?, ?, ? )”;

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

Parameter Parameter – – T o T o các các tham tham s s cho cho Command Command Parameter

Parameter – – T o T o các các tham tham s s cho cho Command Command

Sql Data Provider:

cmd.Parameters.Add(“ id ”, SqlDbType.Int);

cmd.Parameters.Add(“ ten ”, SqlDbType.NVarChar);

cmd.Parameters.Add(“ dtb ”, SqlDbType.Float);

cmd Parameters Add(“ id ” OleDbType Integer);

cmd.Parameters.Add( id , OleDbType.Integer);

cmd.Parameters.Add(“ ten ”, OleDbType.VarWChar);

cmd.Parameters.Add(“ dtb ”, OleDbType.Numeric);

Trang 9

Parameter – – tt giá giá tr tr cho cho các các tham tham s s và và th c th c thi thi

Parameter

Parameter – – tt giá giá tr tr cho cho các các tham tham s s và và th c th c thi thi

foreach (Student s in studentList)

{

cmd.Parameters[“ id ”].Value = i;

cmd.Parameters[“ [ ten ”].Value = s.studentName; ] ;

cmd.Parameters[“ dtb ”].Value = s.studentMarks;

cmd.ExecuteNonQuery();

}

© 2009 Khoa CNTT - HKHTN

33

Ví d d G i G i StoredProcedure StoredProcedure Ví

Ví d d G i G i StoredProcedure StoredProcedure

© 2009 Khoa CNTT - HKHTN 34

34

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

NET Data Provider

.NET Data Provider

 Connection

 Command & Parameter

 DataReader

 DataSet & DataAdapter

 Transaction

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

NET Data Provider NET Data Provider DataReader DataReader NET Data Provider

.NET Data Provider DataReader DataReader SqlDataReader

3

ExecuteReader()

SqlConnection

ExecuteReader()

SQL

Select

1

Select

BookID BookName Author

ii Book i Author Author ii

 Truy xu t tu n t và không quay lui

 Ch đ c, Không c p nh t d li u

 Ch l u l i 1 record k t qu trong b nh v i m i l n truy xu t

Trang 10

M t s th c tính & ph ng th c

 M t s thu c tính & ph ng th c :

Thu c tính Ý ngh a

HasRows Tr v xem DataReader có đ c đ c d li u nào không

FieldCount Tr v s l ng thu c tính trong dòng hi n t i (đang đ c)

[int/string] Tr v giá tr c a thu c tínhđang yêu c u

[int/string] Tr v giá tr c a thu c tínhđang yêu c u

Ph ng th c Ý ngh a

Read() c record d li u k ti p

IsDBNull(i) Ki m tra xem giá tr c t i có b null không

Close() óng DataReader

© 2009 Khoa CNTT - HKHTN

37

Ví d d : Load : Load d d li u li u vào vào List List Ví

Ví d d : Load : Load d d li u li u vào vào List List

© 2009 Khoa CNTT - HKHTN

38

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

NET Data Provider

.NET Data Provider

 Connection

 Command & Parameter

 DataReader

 DataSet & DataAdapter

 Transaction

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

ii t t ng ng DataSet DataSet và và DataAdapter DataAdapter

ii t t ng ng DataSet DataSet và và DataAdapter DataAdapter

DataSet

Data source

DataAdapter

DataTable

Fill

Update

DataTable DataAdapter

Fill

Update Fill

Trang 11

ii t t ng ng DataSet DataSet và và DataAdapter DataAdapter

ii t t ng ng DataSet DataSet và và DataAdapter DataAdapter

 DataSet

Là c s d li u đ c l u tr trong b nh chính ( in memory

– Là c s d li u đ c l u tr trong b nh chính ( in-memory

database)

– M i thao tác thay đ i d li u đ c th c hi n trên DataSet ,

khô là h h đ CSDL

không làm nh h ng đ n CSDL

 DataAdapter

– Fill : L y d li u t CSDL đ vào DataSet

– Update : Theo v t các thay đ i trên d li u trên DataSet và

c p nh t d li u ng c vào CSDL

© 2009 Khoa CNTT - HKHTN

41

Mô hình hình đ i đ i t ng t ng DataAdapter DataAdapter Mô

Mô hình hình đ i đ i t ng t ng DataAdapter DataAdapter

S lD t Ad t SelectCommand UpdateCommand InsertCommand DeleteCommand

SqlDataAdapter

SqlDataReader

SqlCommand SqlCommand SqlCommand SqlCommand

SELECT

SqlConnection

© 2009 Khoa CNTT - HKHTN

sp_SELECT sp_UPDATE sp_INSERT sp_DELETE

42

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

i t ng SqlDataAdapter

i t ng SqlDataAdapter

i t ng SqlDataAdapter

i t ng SqlDataAdapter

 M t s thu c tính và ph ng th c

Thu c tính Ý ngh a

SelectCommand

UpdateCommand

InsertCommand

D l t C d

DeleteCommand

Ph ng th c Ý ngh a

Fill(Dataset) L y d li u t CSDL vàđ vào Dataset

FillSchema()

Update(…) Ti n hành c p nh t d li u trên DataSet v i CSDL

L p trình và Thi t k Web 2 – Bài 7: Thao tác CSDL v i ADO NET

i t ng DataSet

i t ng DataSet

i t ng DataSet

i t ng DataSet

 M t s thu c tính và ph ng th c

Thu c tính Ý ngh a

DataSetName Relations Tables Danh sách các table có trong Dataset

Ph ng th c Ý ngh a

GetChange() Tr v DataSet ch a các thay đ i trên DataSet đang xét

RejectChanges() AcceptChanges() GetXML(), ReadXML(), WriteXML()

Ngày đăng: 10/04/2015, 04:08

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w