Provider di dati .NET Framework

Un provider di dati .NET Framework consente di effettuare una connessione a un database, eseguire comandi e recuperare risultati. Tali risultati vengono elaborati direttamente o inseriti nel DataSet di ADO.NET, in modo da consentirne l'esposizione all'utente in una modalità adeguata, unitamente ai dati provenienti da più origini o remoti tra livelli. La semplicità è un aspetto importante della progettazione del provider di dati .NET Framework, che consente di creare un livello minimo tra l'origine dati e il codice, migliorando quindi le prestazioni senza rinunciare ad alcuna funzionalità.

Nella tabella che segue vengono delineati i quattro oggetti principali che costituiscono un provider di dati .NET Framework.

Oggetto Descrizione
Connection Consente di stabilire una connessione a un'origine dati specifica.
Command Consente di eseguire un comando su un'origine dati. Vengono esposti degli oggetti Parameter ed è possibile eseguire tale comando nell'ambito di una Transaction da una Connection.
DataReader Consente di leggere un flusso di dati forward-only di sola lettura da un'origine dati.
DataAdapter Consente di compilare un DataSet e di risolvere gli aggiornamenti con l'origine dati.

In .NET Framework sono inclusi il provider di dati .NET Framework per SQL Server (per Microsoft SQL Server versione 7.0 o successiva), il provider di dati .NET Framework per OLE DB e il provider di dati .NET Framework per ODBC.

Nota   Il provider di dati .NET Framework per ODBC non è incluso in .NET Framework versione 1.0. Se si dispone di .NET Framework versione 1.0 e si desidera utilizzare il provider di dati .NET Framework per ODBC, sarà possibile scaricare quest'ultimo all'indirizzo https://msdn.microsoft.com/downloads/ (informazioni in lingua inglese). Lo spazio dei nomi del provider di dati .NET Framework per ODBC è Microsoft.Data.Odbc.

Provider di dati .NET Framework per SQL Server

Il provider di dati .NET Framework per SQL Server utilizza un proprio protocollo per la comunicazione con SQL Server. È caratterizzato da una struttura semplice e ha prestazioni eccellenti, poiché è ottimizzato per l'accesso diretto a SQL Server, senza aggiunta di alcun livello OLE DB o ODBC (Open Database Connectivity). Nell'immagine che segue vengono posti a confronto il provider di dati .NET Framework per SQL Server e il provider di dati .NET Framework per OLE DB. Con il provider di dati .NET Framework per OLE DB la comunicazione con un'origine dati OLE DB avviene con il concorso del componente Servizio OLE DB, che fornisce pool di connessioni e servizi di transazione, e del provider OLE DB per l'origine dati.

Nota   L'architettura del provider di dati .NET Framework per OLE DB è simile a quella del provider di dati .NET Framework per ODBC. Anche con il secondo, ad esempio, viene effettuata una chiamata a un componente Servizio ODBC.

Confronto tra il provider di dati .NET Framework per SQL Server e il provider di dati .NET Framework per OLE DB

Per utilizzare il provider di dati .NET Framework per SQL Server, è necessario disporre di un accesso a Microsoft SQL Server 7.0 o versione successiva. Le classi del provider di dati .NET Framework per SQL Server sono contenute nello spazio dei nomi System.Data.SqlClient. Per le versioni precedenti di Microsoft SQL Server, utilizzare il provider di dati .NET Framework per OLE DB con il provider OLE DB di SQL Server (SQLOLEDB).

Il provider di dati .NET Framework per SQL Server supporta transazioni sia locali che distribuite. Nel caso delle transazioni distribuite, il provider di dati .NET Framework per SQL Server, per impostazione predefinita, si inserisce automaticamente in una transazione e ottiene i dettagli relativi alla transazione da Servizi componenti di Windows 2000. Per ulteriori informazioni, vedere Esecuzione di transazioni.

Nell'esempio di codice seguente viene mostrato come includere lo spazio dei nomi System.Data.SqlClient nelle applicazioni.

Imports System.Data.SqlClient
[C#]
using System.Data.SqlClient;

Per utilizzare il provider di dati .NET Framework per SQL Server, è necessario installare Microsoft Data Access Components (MDAC) 2.6 o versione successiva.

Provider di dati .NET Framework per OLE DB

Per permettere l'accesso ai dati, il provider di dati .NET Framework per OLE DB si avvale dell'OLE DB nativo tramite l'interoperabilità COM. Il provider di dati .NET Framework per OLE DB supporta transazioni sia locali che distribuite. Nel caso delle transazioni distribuite, il provider di dati .NET Framework per OLE DB, per impostazione predefinita, si inserisce automaticamente in una transazione e ottiene i dettagli relativi alla transazione da Servizi componenti di Windows 2000. Per ulteriori informazioni, vedere Esecuzione di transazioni.

Per utilizzare il provider di dati .NET Framework per OLE DB, è necessario utilizzare un provider OLE DB che supporta le interfacce OLE DB elencate in Interfacce OLE DB utilizzate dal provider di dati .NET Framework per OLE DB.

Nella tabella seguente sono riportati i provider verificati con ADO.NET.

Driver Provider
SQLOLEDB Microsoft OLE DB Provider for SQL Server
MSDAORA Microsoft OLE DB Provider for Oracle
Microsoft.Jet.OLEDB.4.0 OLE DB Provider for Microsoft Jet

**Nota   **Si sconsiglia l'utilizzo di un database Access (Jet) come origine dati per applicazioni con multithreading, quali le applicazioni ASP.NET. Se si rende necessario l'utilizzo di Access come origine dati per un'applicazione ASP.NET e non è possibile utilizzare un'alternativa quale SQL Server o MSDE, si consideri che quando si effettua una connessione a un database Access con un'applicazione ASP.NET possono verificarsi problemi di connessione solitamente imputabili alle autorizzazioni di protezione. Per informazioni sulla risoluzione dei problemi di connessione conseguenti all'utilizzo di ASP.NET con un database Access, vedere l'articolo I316675 "PRB: Impossibile connettersi al database di Access da ASP.NET" nella Microsoft Knowledge Base, all'indirizzo https://support.microsoft.com/

Con il provider di dati .NET Framework per OLE DB le interfacce di OLE DB versione 2.5 non sono supportate. I provider OLE DB che richiedono il supporto di interfacce di OLE DB 2.5 non funzioneranno correttamente con il provider di dati .NET Framework per OLE DB. Tra tali provider sono inclusi Microsoft OLE DB Provider for Exchange e Microsoft OLE DB Provider for Internet Publishing.

Non è possibile utilizzare il provider di dati .NET Framework per OLE DB con il provider OLE DB per ODBC (MSDASQL). Per accedere a un'origine dati ODBC mediante ADO.NET, utilizzare il provider di dati .NET Framework per ODBC.

Le classi del provider di dati .NET Framework per OLE DB sono contenute nello spazio dei nomi System.Data.OleDb. Nell'esempio di codice seguente viene mostrato come includere lo spazio dei nomi System.Data.OleDb nelle applicazioni.

Imports System.Data.OleDb
[C#]
using System.Data.OleDb;

Per utilizzare il provider di dati .NET Framework per OLE DB, è necessario installare MDAC 2.6 o versione successiva.

Provider di dati .NET Framework per ODBC

Per permettere l'accesso ai dati, il provider di dati .NET Framework per ODBC si avvale di Gestione driver (DM, Driver Manager) ODBC tramite l'interoperabilità COM. Il provider di dati ODBC supporta transazioni sia locali che distribuite. Nel caso delle transazioni distribuite, il provider di dati ODBC, per impostazione predefinita, si inserisce automaticamente in una transazione e ottiene i dettagli relativi alla transazione da Servizi componenti di Windows 2000. Per ulteriori informazioni, vedere Esecuzione di transazioni.

Nella tabella che segue sono riportati i driver ODBC verificati con ADO.NET.

Driver
SQL Server
Microsoft ODBC for Oracle
Driver per Microsoft Access (*.mdb)

Le classi del provider di dati .NET Framework per ODBC sono contenute nello spazio dei nomi System.Data.Odbc.

Nota   Il provider di dati .NET Framework per ODBC non è incluso in .NET Framework versione 1.0. Se si dispone di .NET Framework versione 1.0 e si desidera utilizzare il provider di dati .NET Framework per ODBC, sarà possibile scaricare quest'ultimo all'indirizzo https://msdn.microsoft.com/downloads/ (informazioni in lingua inglese). Lo spazio dei nomi del provider di dati .NET Framework per ODBC è Microsoft.Data.Odbc.

Nell'esempio di codice che segue viene mostrato come includere lo spazio dei nomi System.Data.Odbc nelle applicazioni.

Imports System.Data.Odbc
[C#]
using System.Data.Odbc;

Per utilizzare il provider di dati .NET Framework per ODBC, è necessario installare MDAC 2.6 o versione successiva. Si consiglia l'utilizzo di MDAC 2.7.

Provider di dati .NET Framework per Oracle

Il provider di dati .NET Framework per Oracle permette l'accesso alle origini dati Oracle tramite software di connettività per client Oracle. Il provider di dati può essere utilizzato con software client Oracle versione 8.1.7 o successiva. Il provider di dati supporta transazioni sia locali che distribuite. Il provider di dati si inserisce automaticamente nelle transazioni distribuite esistenti, ma attualmente non supporta il metodo EnlistDistributedTransaction. Per ulteriori informazioni, vedere Esecuzione di transazioni.

Perché il provider di dati .NET Framework per Oracle possa essere utilizzato per la connessione a un'origine dati Oracle, è necessario installare il software client Oracle (versione 8.1.7 o successiva).

Le classi del provider di dati .NET Framework per Oracle sono contenute nello spazio dei nomi System.Data.OracleClient, nell'assembly System.Data.OracleClient.dll. Quando si compila un'applicazione in cui viene utilizzato il provider di dati, è necessario fare riferimento sia a System.Data.dll che a System.Data.OracleClient.dll.

Nota   Il provider di dati .NET Framework per Oracle non è incluso in .NET Framework versione 1.0. Se si dispone di .NET Framework versione 1.0 e si desidera utilizzare il provider di dati .NET Framework per Oracle, sarà possibile scaricare quest'ultimo all'indirizzo https://msdn.microsoft.com/downloads/ (informazioni in lingua inglese).

Nell'esempio di codice che segue viene mostrato come includere lo spazio dei nomi System.Data.OracleClient nelle applicazioni.

Imports System.Data.OracleClient
[C#]
using System.Data.OracleClient;

Per utilizzare il provider di dati .NET Framework per Oracle, è necessario installare MDAC 2.6 o versione successiva.

Scelta di un provider di dati .NET Framework

A seconda della struttura e dell'origine dati di un'applicazione, è possibile migliorarne le prestazioni, le funzionalità e l'integrità mediante la scelta del provider di dati .NET Framework più appropriato. Nella tabella che segue vengono illustrati i vantaggi e i limiti di ogni provider di dati .NET Framework.

Provider Note
Provider di dati .NET Framework per SQL Server Consigliato per applicazioni di livello intermedio che utilizzano Microsoft SQL Server 7.0 o versione successiva.

Consigliato per applicazioni a un livello che utilizzano Microsoft Data Engine (MSDE) o Microsoft SQL Server 7.0 o versione successiva.

Consigliato rispetto all'utilizzo combinato del provider OLE DB per SQL Server (SQLOLEDB) con il provider di dati .NET Framework per OLE DB.

Per Microsoft SQL Server versione 6.5 e precedenti, è necessario utilizzare il provider OLE DB per SQL Server (SQLOLEDB) con il provider di dati .NET Framework per OLE DB.

Provider di dati .NET Framework per OLE DB Consigliato per applicazioni di livello intermedio che utilizzano Microsoft SQL Server 6.5 o versioni precedenti o per provider OLE DB che supportano le interfacce OLE DB elencate in Interfacce OLE DB utilizzate dal provider di dati .NET Framework per OLE DB (non sono richieste le interfacce OLE DB 2.5).

Per Microsoft SQL Server 7.0 o versione successiva è consigliato l'utilizzo del provider di dati .NET Framework per SQL Server.

Consigliato per applicazioni a un livello che utilizzano database di Microsoft Access. L'utilizzo di un database di Microsoft Access per applicazioni di livello intermedio non è consigliato.

Provider di dati .NET Framework per ODBC Consigliato per applicazioni di livello intermedio in cui vengono utilizzate origini dati ODBC.

Consigliato per applicazioni a un solo livello in cui vengono utilizzate origini dati ODBC.

Nota   Il provider di dati .NET Framework per ODBC non è incluso in .NET Framework versione 1.0. Se si dispone di .NET Framework versione 1.0 e si desidera utilizzare il provider di dati .NET Framework per ODBC, sarà possibile scaricare quest'ultimo all'indirizzo https://msdn.microsoft.com/downloads/ (informazioni in lingua inglese). Lo spazio dei nomi del provider di dati .NET Framework per ODBC è Microsoft.Data.Odbc.
Provider di dati .NET Framework per Oracle Consigliato per applicazioni di livello intermedio in cui vengono utilizzate origini dati Oracle.

Consigliato per applicazioni a un solo livello in cui vengono utilizzate origini dati Oracle.

È supportato il software client Oracle versione 8.1.7 o successiva.

Le classi del provider di dati .NET Framework per Oracle sono contenute nello spazio dei nomi System.Data.OracleClient, nell'assembly System.Data.OracleClient.dll. Quando si compila un'applicazione in cui viene utilizzato il provider di dati, disporre riferimenti sia a System.Data.dll che a System.Data.OracleClient.dll.

Nota   Il provider di dati .NET Framework per Oracle non è incluso in .NET Framework versione 1.0. Se si dispone di .NET Framework versione 1.0 e si desidera utilizzare il provider di dati .NET Framework per Oracle, sarà possibile scaricare quest'ultimo all'indirizzo https://msdn.microsoft.com/downloads/ (informazioni in lingua inglese).

Vedere anche

Cenni preliminari su ADO.NET | Architettura di ADO.NET | Utilizzo di provider di dati .NET Framework per accedere ai dati