1 /28 Introduzione a ADO.NET Silvano Coriani Developer & Platform Evangelism MCTrainer...

Preview:

Citation preview

1 /28

Introduzione a ADO.NET

Silvano CorianiDeveloper & Platform Evangelism

MCTrainerMCSDeveloperMCADeveloperMCSEInternetMCDBA

2 /28

Da dove iniziare...

3 /28

.NET Data Access Overview

4 /28

.NET Data Access Overview

5 /28

.NET Data Access Overview

6 /28

Da ADO 2.x a ADO.NET

ConnectionConnection

AD

OA

DO

.NET

CommandCommand

RecordsetRecordset

XxxConnectionXxxConnection

XxxCommandXxxCommand

DataSetDataSet

XxxTransactionXxxTransaction

XxxDataReaderXxxDataReader

XxxDataAdapterXxxDataAdapter

7 /28

Architettura applicativa

8 /28

.NET Data Provider

• connessaCommand

9 /28

.NET Data Provider

• DataAdapter• DataReader

10 /28

.NET Application.NET Application

ODBCODBC

OLE DBOLE DB

Other DBMSOther DBMSNon-relationalNon-relational

sourcessources

OLE DB ProviderOLE DB Provider

SQL ServerSQL Server

System.Data.SqlClientSystem.Data.SqlClient System.Data.OleDbSystem.Data.OleDbSystem.Data.OracleSystem.Data.Oracle

OracleOracle

DataSetDataSet

System.Data.OdbcSystem.Data.Odbc

11 /28

I componenti di ADO.NET

Data SourceData Source

.NET Data Provider.NET Data Provider

ConnectionConnection

CommandCommand

DataAdapterDataAdapter

DataReaderDataReader

.NET Data Storage.NET Data Storage

DataSetDataSet

DataTablesDataTables

XMLDataXMLData

XMLDataSchemaXMLDataSchema

XMLXML

12 /28

Data

ADO.NET in uno scenario connesso

XxxConnectionXxxConnection

XxxCommandXxxCommand

XxxDataReaderXxxDataReader

13 /28

DEMO

14 /28

Architettura Connessa vs. Disconnessa

• DataAdapterDataSet

15 /28

ADO.NET in uno scenario disconnesso

XxxConnectionXxxConnection

XxxDataAdapterXxxDataAdapter

DataSetDataSet

Data

16 /28

Architettura Connessa vs. Disconnessa

17 /28

DEMO

18 /28

DataSet: Intro

19 /28

DataSet: Intro

• Basato su un paradigma a “collezioni”– DataRow come collezione di

campi/colonne– DataTable come collezione di

DataRow– DataRelations come collezione di

relazioni tra le DataTables– Constraints

• array based

20 /28

DataSet: Intro

• schema XSDMarshalByValueObjectISerializable

21 /28

DataSet Object Model

DataSet

DataTableCollectionDataRelationsCollection

DataRelation DataTable

DataColumnCollectionDataRowCollectionConstraintCollection

DataColumnDataRowConstraint

DataTable DataTable

DataColumn DataRow

22 /28

Popolare il DataSet

• DataAdapterstruttura via codice

23 /28

DataAdapter

24 /28

Architettura del DataAdapter

Data

SqlDataAdapter

SqlConnection

SelectSqlCommand

InsertSqlCommand

UpdateSqlCommand

DeleteSqlCommand

DataSet

SqlCommandBuilder

25 /28

Architettura del DataAdapter

sp_SELECT

XxxCommandXxxCommand

SelectCommand UpdateCommand InsertCommand DeleteCommand

XxxDataAdapter

XxxCommandXxxCommand XxxCommandXxxCommand XxxCommandXxxCommand

XxxConnectionXxxConnection

sp_UPDATE sp_INSERT sp_DELETE

XxxDataReaderXxxDataReader

26 /28

Ma dobbiamo scrivere tutto a mano?

27 /28

DEMO

28 /28

In sintesi

29 /28

News

30 /28

Recommended