Condividi tramite


Provider di dati .NET Framework (ADO.NET)

Un provider di dati .NET Framework consente di effettuare una connessione a un database, eseguire comandi e recuperare risultati.Tali risultati vengono elaborati direttamente, inseriti in un oggetto DataSet in modo da consentirne l'esposizione all'utente se necessario, combinati con dati provenienti da più origini o elaborati in modalità remota tra livelli.I provider di dati .NET Framework presentano una struttura semplice e creano un livello minimo tra l'origine dati e il codice, migliorando quindi le prestazioni senza compromettere le funzionalità.

Nella tabella seguente sono elencati i provider di dati inclusi in .NET Framework.

Provider di dati .NET Framework

Descrizione

.NET Framework Provider di dati per SQL Server

Offre accesso ai dati per Microsoft SQL Server 7.0 o versione successiva.Utilizza lo spazio dei nomi System.Data.SqlClient.

.NET Framework Provider di dati per OLE DB

Per origini dati esposte tramite OLE DB.Utilizza lo spazio dei nomi System.Data.OleDb.

.NET Framework Provider di dati per ODBC

Per origini dati esposte tramite ODBC.Utilizza lo spazio dei nomi System.Data.Odbc.

.NET Framework Provider di dati per Oracle

Per origini dei dati Oracle.Il provider di dati .NET Framework per Oracle può essere utilizzato con software client Oracle 8.1.7 e versioni successive e utilizza lo spazio dei nomi System.Data.OracleClient.

Provider EntityClient

Fornisce accesso ai dati per le applicazioni Entity Data Model (EDM).Utilizza lo spazio dei nomi System.Data.EntityClient.

Oggetti principali dei provider di dati .NET Framework

Nella tabella seguente 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.La classe di base per tutti gli oggetti Connection è DbConnection.

Command

Consente di eseguire un comando su un'origine dati.Espone Parameters e può essere eseguito nell'ambito di Transaction da Connection.La classe di base per tutti gli oggetti Command è DbCommand.

DataReader

Consente di leggere un flusso di dati forward-only di sola lettura da un'origine dati.La classe di base per tutti gli oggetti DataReader è la classe DbDataReader.

DataAdapter

Consente di popolare un DataSet e di risolvere gli aggiornamenti con l'origine dati.La classe di base per tutti gli oggetti DataAdapter è DbDataAdapter.

Oltre alle classi principali elencate nella tabella precedente, un provider di dati .NET Framework contiene anche le classi elencate nella tabella seguente.

Oggetto

Descrizione

Transaction

Consente di inserire i comandi in transazioni nell'origine dati.La classe di base per tutti gli oggetti Transaction è DbTransaction.In ADO.NET è anche disponibile il supporto per le transazioni che utilizzano le classi nello spazio dei nomi System.Transactions.

CommandBuilder

Oggetto helper che genera automaticamente le proprietà dei comandi di un oggetto DataAdapter o deriva le informazioni sui parametri da una stored procedure e popola la raccolta Parameters di un oggetto Command.La classe di base per tutti gli oggetti CommandBuilder è DbCommandBuilder.

ConnectionStringBuilder

Oggetto helper che offre un metodo semplice per creare e gestire il contenuto delle stringhe di connessione utilizzate dagli oggetti Connection.La classe di base per tutti gli oggetti ConnectionStringBuilder è DbConnectionStringBuilder.

Parameter

Definisce i parametri di input, output e dei valori restituiti per i comandi e le stored procedure.La classe di base per tutti gli oggetti Parameter è DbParameter.

Exception

Viene restituito quando si verifica un errore nell'origine dati.Per un errore verificatosi nel client, i provider di dati .NET Framework generano un'eccezione .NET Framework.La classe di base per tutti gli oggetti Exception è DbException.

Error

Espone le informazioni di un avviso o di un errore restituito da un'origine dati.

ClientPermission

Viene fornito per gli attributi di sicurezza dall'accesso di codice del provider di dati .NET Framework.La classe base per tutti gli oggetti ClientPermission è DBDataPermission.

Provider di dati .NET Framework per SQL Server (SqlClient)

Il provider di dati .NET Framework per SQL Server (SqlClient) utilizza un protocollo interno per comunicare con SQL Server.È caratterizzato da una struttura semplice e offre buone prestazioni perché è ottimizzato per l'accesso diretto a SQL Server, senza aggiunta di alcun livello OLE DB o ODBC (Open Database Connectivity).Nell'immagine seguente vengono messi a confronto il provider di dati .NET Framework per SQL Server e il provider di dati .NET Framework per OLE DB.Il provider di dati .NET Framework per OLE DB comunica con un'origine dati OLE DB tramite il componente Servizio OLE DB, che fornisce pool di connessioni e servizi di transazione, e il provider OLE DB per l'origine dati.

NotaNota

L'architettura del provider di dati .NET Framework per ODBC è simile a quella del provider di dati .NET Framework per OLE DB. Come quest'ultimo, ad esempio, effettua 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

Provider di dati

Per utilizzare il provider di dati .NET Framework per SQL Server, è necessario avere accesso a SQL Server 7.0 o versioni successive.Le classi del provider di dati .NET Framework per SQL Server sono contenute nello spazio dei nomi System.Data.SqlClient.Per le versioni precedenti SQL Server, utilizzare il provider di dati .NET Framework per OLE DB con il provider OLE DB SQL ServerSystem.Data.OleDb.

Il provider di dati .NET Framework per SQL Server supporta transazioni sia locali che distribuite.Per le transazioni distribuite, il provider di dati .NET Framework per SQL Server si inserisce automaticamente, per impostazione predefinita, in una transazione e ottiene i dettagli relativi alla transazione da Servizi componenti di Windows o System.Transactions.Per ulteriori informazioni, vedere Transazioni e concorrenza (ADO.NET).

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

Imports System.Data.SqlClient
using System.Data.SqlClient;

Provider di dati .NET Framework per OLE DB

Per consentire l'accesso ai dati, il provider di dati .NET Framework per OLE DB (OleDb) utilizza il provider OLE DB nativo tramite l'interoperabilità COM.Il provider di dati .NET Framework per OLE DB supporta transazioni sia locali che distribuite.Per le transazioni distribuite, il provider di dati .NET Framework per OLE DB si inserisce automaticamente, per impostazione predefinita, in una transazione e ottiene i dettagli relativi alla transazione da Servizi componenti di Windows 2000.Per ulteriori informazioni, vedere Transazioni e concorrenza (ADO.NET).

Nella tabella seguente sono elencati i provider che sono stati testati con ADO.NET.

Driver

Provider

SQLOLEDB

Provider Microsoft OLE DB per SQL Server

MSDAORA

Provider Microsoft OLE DB per Oracle

Microsoft.Jet.OLEDB.4.0

Provider OLE DB per Microsoft Jet

NotaNota

È sconsigliato l'utilizzo di un database Access (Jet) come origine dati per applicazioni con multithreading, quali le applicazioni ASP.NET.Se è necessario utilizzare Jet come origine dati per un'applicazione ASP.NET, tenere presente che le applicazioni ASP.NET che si connettono a un database Access possono riscontrare problemi di connessione.Per informazioni sulla risoluzione dei problemi di connessione quando si utilizza ASP.NET con un database Access (Jet), vedere l'articolo Q316675, "PRB: Impossibile connettersi al database Access da ASP.NET" in Microsoft Knowledge Base.

Il provider di dati .NET Framework per OLE DB non supporta le interfacce di OLE DB versione 2.5.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 il provider Microsoft OLE DB per Exchange e il provider Microsoft OLE DB per 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 illustrato come includere lo spazio dei nomi System.Data.OleDb nelle applicazioni.

Imports System.Data.OleDb
using System.Data.OleDb;
NotaNota

Per il provider di dati .NET Framework per OLE DB è richiesto MDAC 2.6 o versione successiva e si consiglia MDAC 2.8 Service Pack 1 (SP1).È possibile scaricare MDAC 2.8 SP1 dal sito Web Developer Center Acceso dati e archiviazione (la pagina potrebbe essere in inglese).

Provider di dati .NET Framework per ODBC

Per consentire l'accesso ai dati, il provider di dati .NET Framework per ODBC (Odbc) utilizza Gestione driver ODBC.Il provider di dati ODBC supporta transazioni sia locali che distribuite.Per le transazioni distribuite, il provider di dati ODBC si inserisce automaticamente, per impostazione predefinita, in una transazione e ottiene i dettagli relativi alla transazione da Servizi componenti di Windows 2000.Per ulteriori informazioni, vedere Transazioni e concorrenza (ADO.NET).

Nella tabella seguente sono elencati i driver ODBC testati con ADO.NET.

Driver

SQL Server

Microsoft ODBC per Oracle

Driver per Microsoft Access (*.mdb)

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

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

Imports System.Data.Odbc
using System.Data.Odbc;
NotaNota

Per il provider di dati .NET Framework per ODBC è richiesto MDAC 2.6 o versione successiva ed è consigliato MDAC 2.8 Service Pack 1 (SP1).È possibile scaricare MDAC 2.8 SP1 dal sito Web Developer Center Acceso dati e archiviazione (la pagina potrebbe essere in inglese).

Provider di dati .NET Framework per Oracle

Il provider di dati .NET Framework per Oracle (OracleClient) consente l'accesso alle origini dati Oracle tramite il software di connettività per client Oracle.Il provider di dati può essere utilizzato con il software client Oracle 8.1.7 o versione successiva.Il provider di dati supporta transazioni sia locali che distribuite.Per ulteriori informazioni, vedere Transazioni e concorrenza (ADO.NET).

Per utilizzare il provider di dati .NET Framework per Oracle 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, all'interno dell'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.

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

Imports System.Data
Imports System.Data.OracleClient
using System.Data;
using System.Data.OracleClient;

Scelta di un provider di dati .NET Framework

A seconda della struttura e dell'origine dati di un'applicazione, la scelta del provider di dati .NET Framework più appropriato può migliorare le prestazioni, le funzionalità e l'integrità dell'applicazione.Nella tabella seguente vengono illustrati i vantaggi e i limiti di ogni provider di dati .NET Framework.

Provider

Note

.NET Framework Provider di dati per SQL Server

Consigliato per applicazioni di livello intermedio che utilizzano Microsoft SQL Server 7.0 o versione successiva.

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

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

Per SQL Server 6.5 e versioni precedenti, è necessario utilizzare il provider OLE DB per SQL Server con il provider di dati .NET Framework per OLE DB.

.NET Framework Provider di dati per OLE DB

Consigliato per applicazioni di livello intermedio che utilizzano SQL Server 6.5 o versione precedente.

Per SQL Server 7.0 o versione successiva, è consigliato il provider di dati .NET Framework per SQL Server.

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

.NET Framework Provider di dati per ODBC

Consigliato per applicazioni a un solo livello o a livello intermedio che utilizzano origini dati ODBC.

.NET Framework Provider di dati per Oracle

Consigliato per applicazioni a un solo livello o a livello intermedio che utilizzano origini dati Oracle.

Provider EntityClient

Il provider EntityClient è utilizzato per l'accesso ai dati basati su Entity Data Model (EDM).A differenza degli altri provider di dati .NET Framework, non interagisce direttamente con un'origine dati,ma utilizza Entity SQL per comunicare con il provider di dati sottostante.Per ulteriori informazioni, vedere EntityClient and Entity SQL.

Vedere anche

Altre risorse

Cenni preliminari su ADO.NET

Recupero e modifica di dati in ADO.NET