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