Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Il Microsoft.Data.SqlClient namespace contiene il provider di dati .NET supportato per database compatibili con SQL Server. È nato come fork di System.Data.SqlClient e mantiene il familiare modello di programmazione ADO.NET, introducendo nuove funzionalità di SQL Server indipendentemente dal runtime .NET.
Utilizzare Microsoft.Data.SqlClient per nuovi sviluppi.
Installa e importa il namespace
Aggiungi il pacchetto NuGet:
dotnet add package Microsoft.Data.SqlClient
Importa il namespace:
using Microsoft.Data.SqlClient;
La maggior parte delle applicazioni usa SqlConnection, SqlCommand, SqlParameter, SqlDataReader, e SqlTransaction. Per la superficie pubblica completa, vedi il riferimento API Microsoft. Data.SqlClient.
Relazione con ADO.NET
Microsoft. Data.SqlClient implementa tipi indipendenti dal provider da System.Data.Common, inclusi DbConnection, DbCommand, DbDataReader, e DbTransaction. Fornisce inoltre API specifiche per SQL Server come:
SqlBulkCopySqlBatchSqlConnectionStringBuilderSqlConfigurableRetryFactorySqlDependency- Autenticazione, crittografia e supporto dei tipi di dati specifici per SQL Server
Per indicazioni sulla scelta di API indipendenti dal provider o specifiche per SqlClient, consulta l'architettura ADO.NET con Microsoft. Data.SqlClient.
Relazione con System.Data.SqlClient
System.Data.SqlClientè il provider più vecchio che viene fornito con .NET Framework e versioni precedenti di .NET.
Microsoft.Data.SqlClient Utilizza molti nomi di tipo simili, ma ha pacchetti, namespace, impostazioni predefinite, funzionalità e politiche di supporto differenti.
Non fare riferimento a entrambi i fornitori nel nuovo codice applicativo. I tipi con lo stesso nome dei due pacchetti non sono intercambiabili. Un System.Data.SqlClient.SqlConnection, per esempio, non può essere passato dove è richiesto un Microsoft.Data.SqlClient.SqlConnection.
La migrazione di solito inizia aggiungendo il Microsoft.Data.SqlClient pacchetto e cambiando i riferimenti dello spazio dei nomi, ma bisogna anche esaminare la crittografia della connessione, i parametri, la configurazione, le dipendenze transitive e il comportamento in runtime. Segui Migrate da System.Data.SqlClient a Microsoft. Data.SqlClient prima di distribuire.
Compatibilità delle versioni
La versione del pacchetto driver è indipendente dalla versione .NET dell'applicazione e dalla versione del motore di database. Controlla tutti e tre:
| Component | Cosa verificare |
|---|---|
| Microsoft.Data.SqlClient | La linea di rilascio è supportata e contiene le funzionalità utilizzate dalla tua applicazione. |
| .NET o .NET Framework | L'applicazione mira a un runtime supportato da quella release del driver. |
| Database compatibile con SQL Server | La release del driver supporta la versione del database e il server supporta qualsiasi funzionalità di protocollo richiesta, come TDS 8.0. |
Per le matrici attuali, vedi il ciclo di vita del supporto driver SqlClient.
Modifiche specifiche della versione
Le release dei driver possono aggiungere API, spostare dipendenze opzionali e modificare valori predefiniti sicuri. Rivedi i cambiamenti prima di ogni aggiornamento minore o maggiore.
Ecco alcuni esempi:
- La versione 4.0 ha modificato il valore predefinito di
Encryptintrue. - La versione 5.0 ha introdotto
SqlConnectionEncryptOptioneEncrypt=Strictper TDS 8.0. - La versione 5.2 ha introdotto
SqlBatchper i target .NET moderni supportati. - La versione 7.0 ha spostato l'autenticazione Microsoft Entra fornita dal driver in
Microsoft.Data.SqlClient.Extensions.Azure.
Scopri le novità di Microsoft. Data.SqlClient per i link alle note di rilascio e un riepilogo degli aggiornamenti.
Namespace e pacchetti correlati
Alcune funzionalità utilizzano tipi al di fuori del namespace principale o pacchetti opzionali.
| Spazio di nomi o pacchetto | Purpose |
|---|---|
Microsoft.Data.SqlClient.Server |
Implementazioni SqlClient di SqlDataRecord e SqlMetaData. |
Microsoft.Data.SqlTypes |
Tipi specifici per SqlClient come SqlFileStream, SqlJson, e SqlVector<T>. |
Microsoft.Data.SqlClient.Diagnostics |
Payload di eventi diagnostici fortemente tipizzati. |
Microsoft.Data.SqlClient.Extensions.Azure |
Autenticazione Microsoft Entra fornita dal driver per la versione 7.0 e successive. |
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider |
Integrazione con Azure Key Vault per Always Encrypted. |
Non dedurre i requisiti del pacchetto solo da uno spazio di nomi. Segui l'articolo di approfondimento e le informazioni sulle dipendenze del pacchetto NuGet per la versione del driver che utilizzi.