Você está na página 1de 68

Chng 5

Cc thnh phn truy cp d liu


ng dng Client-Server Cc thnh phn truy cp d liu (DAC)

ADO.NET
Gii thiu v ADO.NET Cc thnh phn ca ADO.NET
DataProviders DataSet

DataBinding

ng dng Client-Server Cc thnh phn truy cp d liu (DAC)

lu trong

C s d liu

Cc k thut truy cp d liu Client


4

Phn mm Client

Phn mm Client

Database server

Yu cu d liu Database Gi d liu User Yu cu d liu Database Thng bo li Phn mm Client Server tt Server ang chy

DAC
(ODBC, OLE DB, ADO, ADO.net) Database
6

Gii thiu v ADO.NET Cc thnh phn ca ADO.NET


DataProviders DataSet

L k thut truy cp c s d liu c h tr bi th vin lp c s ca .NET Framework

XML XML

ta n se ier e T Pr

n o i t
er i T

ta a D

Database
10

11

ng dng

ADO.NET

DataSet DataTable

Provider DataReader Command Connection DataAdapter

database
12

Dng kt ni n CSDL, thc hin cc cu lnh, v nhn kt qu tr v Hin c cc loi data provider chnh
SQL .NET Data Provider OLE DB .NET Data Provider ODBC Data Provider
System.Data System.Data.SqlClient System.Data System.Data.OleDb System.Data System.Data.Odbc

SQL Server

Application

ADO.NET

OLE DB

ODBC
.NET Data Provider
13

14

Cc thnh phn ca .NET Data Provider


.NET Data Provider
???Connection ???Command ???DataAdapter SelectCommand InsertCommand Parameters ???Parameter UpdateCommand DeleteCommand

???DataReader

15

16

Mt i tng Connection th hin 1 kt ni n c s d liu. Gm:


Lp SqlConnection (SQL .Net Framework Data Provider) Lp OleDbConnection (OLEDB .Net Framework Data Provider)

17

Thuc tnh
ConnectionString: chui ni kt cha thng tin v c s d liu.

Phng thc
Open(): M ni kt Close(): ng ni kt CreateCommand(): To mt i tng Command nh mt cu truy vn.

18

S dng phng thc xy dng c tham s ca lp SqlConnection


Tham s ny l chui kt ni (ConnectionString):
Tn Server lu c s d liu (Server) Tn c s d liu (Database) Ti khon, Mt khu (uid, pwd) Mi thuc tnh cch nhau du ;

Th d:
SqlConnection sqlcon = new SqlConnection(Server=SQLDB; uid=mylogin;pwd=mylogin;Database=Tennis");

19

20

S dng phng thc xy dng c tham s ca lp OleDbConnection


Tham s ny l chui kt ni (ConnectionString): Tn trnh cung cp (Provider) Tn Server lu c s d liu (Server, Data Source) Tn c s d liu (Database) Ti khon, Mt khu (uid, pwd) Mi thuc tnh cch nhau bi du chm phy ;

21

OleDbConnection con=new OleDbConnection ("Provider=SQLOLEDB;Server=SQLDB; Database=Tennis;uid=sa;pwd=password"); OleDbConnection con=new OleDbConnection (Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\\Tennis.mdb);

Mt s Provider:
SQLOLEDB Microsoft.Jet.OLEDB.4.0 Provider ca SQL Server Provider ca Access

22

23

24

Mt i tng Command cho php truy xut hoc thao tc d liu trong c s d liu (thng qua cu truy vn dng chui). i tng Command c khi to sau khi 1 i tng Connection c thit lp. Gm:
SqlCommand: cho php thc thi cu truy vn vi SQL .Net Framework Data Provider OleDbCommand: cho php thc thi cu truy vn vi OleDb .Net Framework Data Provider

25

Thuc tnh
CommandText: l chui th hin cu truy vn hoc tn ca 1 stored procedure hay tn 1 bng CommandType: loi ca i tng Command (StoredProcedure, TableDirect, Text). Mac dinh la text Connection: i tng Connection n 1 c s d liu

Phng thc
ExecuteNonQuery(): thc thi cu truy vn hnh ng (Insert, Update, Delete) ExecuteReader(): thc thi cu truy vn dng Select; kt qu tr v l 1 i tng DataReader ExecuteScalar(): thc thi cu truy vn dng Select vi kt qu ca cu truy vn l 1 gi tr n

26

27

28

Vn : Cu truy vn c thc hin da trn nhng gi tr c nhp t bn phm Gii php:


Vit cu truy vn dng chui trc tip S dng lp Parameter

29

30

1 i tng Parameter l 1 tham s c truyn vo khi thc hin 1 cu truy vn hoc 1 stored procedure thng qua 1 i tng Command Gm:
Lp SqlParameter: tham s vi SQL .Net Framework Data Provider Lp OleDbParameter: tham s vi OleDb .Net Framework Data Provider

31

Thuc tnh
ParameterName: tn tham s. DbType: Kiu tham s Value: Gi tr ca tham s

Phng thc xy dng


SqlParameter(string, SqlDbType) OleDbParameter(string, OleDbType) nh ngha 1 tham s vi tn v kiu thch hp

Mt tham s sau khi nh ngha s c thm vo tp hp Parameters ca 1 i tng Command

32

33

34

Thuc tnh CommandText ca i tng Command l tn ca stored procedure Thuc tnh CommandType l StoredProcedure Dng lp Parameter nh ngha cc tham s Thm cc tham s vo tp hp Parameters ca i tng Command Thc thi cu truy vn

35

Gi s ta c 1 stored procedure cho php cp nht ngy sinh ca cc cu th:

36

37

38

39

i tng thuc lp DataReader cha lung d liu ch c l kt qu ca vic thc thi cu truy vn dng Select.
Lung d liu ny ch cho php truy xut 1 chiu (t u n cui - forward only).

1 i tng DataReader c to ra khi phng thc ExecuteReader() ca 1 i tng Command c gi thc hin. Gm:
Lp SqlDataReader: c d liu vi SQL .Net Framework Provider Lp OleDbDataReader: c d liu vi OleDb .Net Framework Provider

40

Thuc tnh
HasRows: xc nh i tng DataReader cn tr v kt qu na (true) hay khng (false)

Phng thc
Close(): ng li i tng DataReader Read(): di chuyn n mu tin k tip, kt qu tr v l true nu di chuyn thnh cng, ngc li false GetBoolean(int i): tr v gi tr ca ct ch nh nh l 1 gi tr kiu bool. GetDateTime(int i): tr v gi tr ca ct ch nh nh l 1 gi tr kiu DateTime GetInt32(int i): tr v gi tr ca ct ch nh nh l 1 gi tr kiu int GetString(int i): tr v gi tr ca ct ch nh nh l 1 gi tr kiu string GetValue(int i): tr v gi tr ca ct ch nh
41

42

43

44

i tng DataAdapter cho php ly d liu t c s d liu a vo DataSet v ngc li cho php cp nht c s d liu vi d liu t DataSet Gm:
Lp SqlDataAdapter: SQL .Net Framework Data Provider Lp OleDbDataAdapter: OleDb .Net Framework Data Provider

45

Thuc tnh
SelectCommand InsertCommand UpdateCommand DeleteCommand

ngha
i tng Command ly d liu t CSDL

Cp nht CSDL da vo thay i trong Dataset (thng qua 3 i tng Command cho php Insert, Update, Delete)

Phng thc
Fill

ngha
a (Cp nht) d liu vo DataSet ( khp vi ngun d liu) nh thc thi cu truy vn trong SelectCommand
46

47

48

L cc i tng lu d liu c truy xut t c s d liu C th thao tc vi d liu trong DataSet ngay c khi ng dng ngt kt ni vi c s d liu (disconnected architecture) Cu trc ca 1 DataSet tng t nh cu trc mt c s d liu quan h gm cc bng (DataTable), dng (DataRow), ct (DataColumn), quan h (DataRelation), etc.
Client sa i Dataset Cp nht Dataset ln Server

Client
Gi Dataset ti Client

Dataset

Server
Gi d liu ti Dataset

Client yu cu d liu trn Server


49

nh x DataSet DataSet Data Source Tables DataTable Columns DataColumn

Rows

DataRow

Relations

DataRelation

50

Lp DataSet c nh ngha trong khng gian tn System.Data Thuc tnh


Tables: tp hp cc DataTable ca DataSet

Phng thc
Phng thc xy dng khng tham s: to 1 i tng DataSet vi tn mc nh Phng thc xy dng c tham s: to 1 i tng DataSet vi tn c ch nh VD:
// Khng cn ch tn ca Dataset Dataset empDS = new Dataset(); // To Dataset c tn l EmpInfor Dataset empDS = new Dataset(EmpInfor);

51

52

Mt DataTable l mt bng trong 1 DataSet (tng ng 1 bng trong b nh ca c s d liu quan h). Thuc tnh
Columns: tp hp cc ct (DataColumn) ca 1 DataTable Constraints: tp hp cc contraints ca 1 DataTable PrimaryKey: tp hp cc trng to nn kha chnh Rows: tp hp cc dng (DataRow) ca 1 DataTable

53

Mt DataColumn l 1 ct ca 1 DataTable trong 1 DataSet. Thuc tnh


ColumnName: tn ca ct DataType: kiu d liu

Mt DataRow l 1 dng ca 1 DataTable trong 1 DataSet.


54

DataTable (no structure) Add DataColumn objects Define primary key

Add Constraint objects

Add rows to the table


55

To DataTable
Dng phng thc xy dng ca lp DataTable

Thm ct vo DataTable
Dng phng thc xy dng ca lp DataColumn S dng tp hp Columns ca i tng DataTable thm ct mi vo

56

S dng thuc tnh PrimaryKey

Kha chnh l 1 ct

Kha chnh l kha t hp


empTable.PrimaryKey=new DataColumn[] {empTable.Columns["EmpNo"], empTable.Columns["EmpName"]};

empTable.PrimaryKey=new DataColumn[] {empTable.Columns["EmpNo"]};

DataColumn[]col_arr=new DataColumn[1]; col_arr[0]=empTable.Columns["EmpNo"]; empTable.PrimaryKey = col_arr;

DataColumn[]pkey=new DataColumn[2]; pkey[0] = empTable.Columns["EmpNo"]; pkey[1] = empTable.Columns["EmpName"]; empTable.PrimaryKey = pKey;

57

S dng phng thc NewRow ca lp DataTable

DataRow empRow=empTable.NewRow(); empRow ["EmpName"] = "Smith"; empRow [1] = "Smith"; empTable.Rows.Add(empRow); empTable.Rows.Add(new Object[] {1, "Smith"});

58

DataView Constraint DataRelation

59

Ni kt n CSDL (Connection) To i tng DataAdapter Ch ra cu truy vn trong thuc tnh SelectCommand ca DataAdapter in d liu t DataAdapter vo Dataset nh phng thc Fill ca lp DataAdapter

60

61

62

DataBinding l qu trnh rng buc gi tr trong ngun d liu (DataSet, DataTable, DataColumn,) vi controls ca Winforms

Winforms controls
Examples

ADO.Net objects
Examples

63

Mt ct ca 1 DataTable rng buc vi 1 controls bt k ca Winforms Th d: Ct Salary ca DataTable t s c rng buc vi thuc tnh Text ca TextBox Text

64

Tt c cc dng ca 1 ct ca 1 DataTable (hay ton b DataTable hoc DataSet) rng buc vi 1 controls dng danh sch ca Winforms Th d: Ct DepartmentName ca DataTable t s rng buc vi Combobox Combo

65

Cho php hin th d liu dng bng D liu hin th trong DatagridView c th c thm, sa, xa, sp xp, phn trang. Thuc tnh
DataSource: i tng ngun d liu (DataSet, DataTable, ) s c th hin trn DatagridView

Th d: Hin th chi tit bng Players

66

67

68

Você também pode gostar