SqlConnection Classe

Definizione

Rappresenta una connessione aperta a un database di SQL Server. La classe non può essere ereditata.

public ref class SqlConnection sealed : System::Data::Common::DbConnection, ICloneable
public ref class SqlConnection sealed : System::Data::Common::DbConnection
public ref class SqlConnection sealed : System::ComponentModel::Component, ICloneable, IDisposable, System::Data::IDbConnection
public ref class SqlConnection sealed : System::Data::Common::DbConnection, ICloneable, IDisposable
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable
public sealed class SqlConnection : System.Data.Common.DbConnection
public sealed class SqlConnection : System.ComponentModel.Component, ICloneable, IDisposable, System.Data.IDbConnection
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable, IDisposable
type SqlConnection = class
    inherit DbConnection
    interface ICloneable
type SqlConnection = class
    inherit DbConnection
type SqlConnection = class
    inherit Component
    interface IDbConnection
    interface IDisposable
    interface ICloneable
type SqlConnection = class
    inherit DbConnection
    interface IDbConnection
    interface ICloneable
    interface IDisposable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Public NotInheritable Class SqlConnection
Inherits Component
Implements ICloneable, IDbConnection, IDisposable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable, IDisposable
Ereditarietà
SqlConnection
Ereditarietà
Ereditarietà
Implementazioni

Esempio

Nell'esempio seguente vengono creati un SqlCommand oggetto e un oggetto SqlConnection . SqlConnectionl'oggetto viene aperto e impostato come per Connection SqlCommand . Nell'esempio viene quindi chiamato ExecuteNonQuery . A tale scopo, a vengono passate una stringa di connessione ExecuteNonQuery e una stringa di query che è un'istruzione INSERT Transact-SQL. La connessione viene chiusa automaticamente quando il codice esce dal blocco using.

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();
    }
}
Public Sub CreateCommand(ByVal queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        command.Connection.Open()
        command.ExecuteNonQuery()
    End Using
End Sub

Commenti

Un SqlConnection oggetto rappresenta una sessione univoca per un'SQL Server dati. Con un sistema di database client/server, equivale a una connessione di rete al server. SqlConnection viene usato insieme a SqlDataAdapter e per migliorare le prestazioni durante la connessione a un Microsoft SQL Server SqlCommand database. Per tutti i prodotti SQL Server di terze parti e altre OLE DB dati supportate, usare OleDbConnection .

Quando si crea un'istanza di SqlConnection , tutte le proprietà vengono impostate sui valori iniziali. Per un elenco di questi valori, vedere il SqlConnection costruttore .

Vedere ConnectionString per un elenco delle parole chiave in una stringa di connessione.

Se SqlConnection l'oggetto esce dall'ambito, non verrà chiuso. Pertanto, è necessario chiudere in modo esplicito la connessione chiamando Close o Dispose . Close e Dispose sono funzionalmente equivalenti. Se il valore del pool di connessioni Pooling è impostato su o , la connessione sottostante viene true yes restituita al pool di connessioni. D'altra parte, se Pooling è impostato su o , la connessione sottostante al server viene effettivamente false no chiusa.

Nota

Nel server non vengono generati eventi di accesso e di disconnessione quando una connessione viene recuperata dal o restituita al pool di connessioni, in quanto la connessione non viene effettivamente chiusa quando viene restituita al pool di connessioni. Per altre informazioni, vedere Pool di connessioni SQL Server (ADO.NET).

Per assicurarsi che le connessioni siano sempre chiuse, aprire la connessione all'interno di un using blocco, come illustrato nel frammento di codice seguente. In questo modo si garantisce che la connessione sia chiusa automaticamente quando il codice esce dal blocco.

Using connection As New SqlConnection(connectionString)
    connection.Open()
    ' Do work here; connection closed on following line.
End Using
using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        // Do work here; connection closed on following line.
    }

Nota

Per distribuire applicazioni ad alte prestazioni, è necessario usare il pool di connessioni. Quando si usa il .NET Framework provider di dati per SQL Server, non è necessario abilitare il pool di connessioni perché il provider lo gestisce automaticamente, anche se è possibile modificare alcune impostazioni. Per altre informazioni, vedere Pool di connessioni SQL Server (ADO.NET).

Se un oggetto viene generato dal metodo che esegue un , rimane aperto quando il livello di SqlException SqlCommand SqlConnection gravità è 19 o inferiore. Quando il livello di gravità è 20 o superiore, il server chiude in genere SqlConnection . L'utente può tuttavia riaprire la connessione e continuare.

Un'applicazione che crea un'istanza dell'oggetto può richiedere a tutti i chiamanti diretti e indiretti di disporre di autorizzazioni sufficienti per il codice impostando richieste di sicurezza SqlConnection dichiarative o imperative. SqlConnection richiede la sicurezza usando SqlClientPermission l'oggetto . Gli utenti possono verificare che il codice disponga di autorizzazioni sufficienti usando SqlClientPermissionAttribute l'oggetto . Gli utenti e gli amministratori possono anche usare il Caspol.exe (Strumento criteri di sicurezza dall'accesso di codice) per modificare i criteri di sicurezza a livello di computer, utente ed organizzazione. Per altre informazioni, vedere Sicurezza in .NET. Per un esempio che illustra come usare le richieste di sicurezza, vedere Sicurezza dall'accesso di codice e ADO.NET.

Per altre informazioni sulla gestione di messaggi informativi e di avviso dal server, vedere Eventi di connessione. Per altre informazioni sugli errori SQL Server motore e sui messaggi di errore, vedere motore di database eventi ed errori.

Attenzione

È possibile forzare TCP anziché la memoria condivisa. A tale scopo, è possibile aggiungere il prefisso tcp: al nome del server nella stringa di connessione oppure è possibile usare localhost.

Costruttori

SqlConnection()

Inizializza una nuova istanza della classe SqlConnection.

SqlConnection(String)

Inizializza una nuova istanza della classe SqlConnection mediante una stringa che contiene la stringa di connessione.

SqlConnection(String, SqlCredential)

Inizializza una nuova istanza della classe SqlConnection data una stringa di connessione, che non usa Integrated Security = true e un oggetto SqlCredential che contiene l'ID utente e la password.

Proprietà

AccessToken

Ottiene o imposta il token di accesso per la connessione.

CanCreateBatch (Ereditato da DbConnection)
CanRaiseEvents

Ottiene un valore che indica se il componente può generare un evento.

(Ereditato da Component)
ClientConnectionId

ID connessione del tentativo di connessione più recente, indipendentemente dall'esito del tentativo positivo o negativo.

ColumnEncryptionKeyCacheTtl

Ottiene o imposta la durata delle voci delle chiavi di crittografia nella cache delle chiavi di crittografia di colonna per la funzionalità Always Encrypted. Il valore predefinito è 2 ore. 0 indica che non avviene nessuna memorizzazione nella cache.

ColumnEncryptionQueryMetadataCacheEnabled

Ottiene o imposta un valore che indica se la memorizzazione nella cache dei metadati di query è abilitata (true) o meno (false) per le query con parametri eseguite in database con l'opzione Always Encrypted abilitata. Il valore predefinito è true.

ColumnEncryptionTrustedMasterKeyPaths

Consente di impostare un elenco di percorsi principali attendibili per un server di database. Se durante l'elaborazione di una query dell'applicazione il driver riceve un percorso chiave non presente nell'elenco, la query non riesce. Questa proprietà fornisce un’ulteriore protezione da attacchi alla sicurezza in cui un SQL Server compromesso fornisce falsi percorsi chiavi. Questo potrebbe causare la perdita delle credenziali dell’archivio di chiavi.

ConnectionString

Ottiene o imposta la stringa usata per aprire un database di SQL Server.

ConnectionTimeout

Ottiene il tempo di attesa (in secondi) mentre si tenta di stabilire una connessione prima di terminare il tentativo e generare un errore.

Container

Ottiene l'oggetto IContainer che contiene Component.

(Ereditato da Component)
Credential

Ottiene o imposta l'oggetto SqlCredential per questa connessione.

Credentials
Database

Ottiene il nome del database corrente o del database da usare dopo l'apertura della connessione.

DataSource

Ottiene il nome dell'istanza di SQL Server a cui connettersi.

DbProviderFactory

Ottiene l'oggetto DbProviderFactory per l'oggetto DbConnection.

(Ereditato da DbConnection)
DesignMode

Ottiene un valore che indica se il Component si trova in modalità progettazione.

(Ereditato da Component)
Events

Ottiene l'elenco dei gestori eventi allegati a questo Component.

(Ereditato da Component)
FireInfoMessageEventOnUserErrors

Ottiene o imposta la proprietà FireInfoMessageEventOnUserErrors.

PacketSize

Ottiene le dimensioni in byte dei pacchetti di rete usati per comunicare con un'istanza di SQL Server.

ServerVersion

Ottiene una stringa che contiene la versione dell'istanza di SQL Server a cui il client è connesso.

Site

Ottiene o imposta l'oggetto ISite di Component.

(Ereditato da Component)
State

Indica lo stato dell'oggetto SqlConnection durante l'ultima operazione di rete eseguita sulla connessione.

StatisticsEnabled

Se impostato su true, attiva la raccolta delle statistiche per la connessione corrente.

WorkstationId

Ottiene una stringa mediante cui si identifica il client di database.

Metodi

BeginDbTransaction(IsolationLevel)

In caso di override in una classe derivata, avvia una transazione di database.

(Ereditato da DbConnection)
BeginDbTransactionAsync(IsolationLevel, CancellationToken)

Avvia una transazione di database in modo asincrono.

(Ereditato da DbConnection)
BeginTransaction()

Avvia una transazione di database.

BeginTransaction(IsolationLevel)

Inizia una transazione di database con il livello di isolamento specificato.

BeginTransaction(IsolationLevel, String)

Avvia una transazione di database con il nome della transazione e il livello di isolamento specificato.

BeginTransaction(String)

Avvia una transazione di database con il nome della transazione specificato.

BeginTransactionAsync(CancellationToken)

Avvia una transazione di database in modo asincrono.

(Ereditato da DbConnection)
BeginTransactionAsync(IsolationLevel, CancellationToken)

Avvia una transazione di database in modo asincrono.

(Ereditato da DbConnection)
ChangeDatabase(String)

Modifica il database corrente per un oggetto SqlConnection aperto.

ChangeDatabaseAsync(String, CancellationToken)

Cambia il database corrente in modo asincrono per una connessione aperta.

(Ereditato da DbConnection)
ChangePassword(String, SqlCredential, SecureString)

Modifica la password SQL Server dell'utente indicata nell'oggetto SqlCredential.

ChangePassword(String, String)

Sostituisce la password SQL Server dell'utente indicata nella stringa di connessione con la nuova password specificata.

ClearAllPools()

Svuota il pool di connessioni.

ClearPool(SqlConnection)

Svuota il pool di connessioni associato alla connessione specificata.

Close()

Chiude la connessione al database. È il metodo preferito di chiusura di una connessione aperta.

CloseAsync()

Chiude la connessione al database in modo asincrono.

(Ereditato da DbConnection)
CreateBatch() (Ereditato da DbConnection)
CreateCommand()

Crea e restituisce un oggetto SqlCommand associato all'oggetto SqlConnection.

CreateDbBatch() (Ereditato da DbConnection)
CreateDbCommand()

In caso di override in una classe derivata, crea e restituisce un oggetto DbCommand associato alla connessione corrente.

(Ereditato da DbConnection)
CreateObjRef(Type)

Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto.

(Ereditato da MarshalByRefObject)
Dispose()

Esegue attività definite dall'applicazione, come rilasciare o reimpostare risorse non gestite.

(Ereditato da DbConnection)
Dispose()

Rilascia tutte le risorse usate da Component.

(Ereditato da Component)
Dispose(Boolean)

Rilascia le risorse non gestite usate da DbConnection e, facoltativamente, le risorse gestite.

(Ereditato da DbConnection)
Dispose(Boolean)

Rilascia le risorse non gestite usate da Component e, facoltativamente, le risorse gestite.

(Ereditato da Component)
DisposeAsync()

Elimina in modo asincrono l'oggetto connessione.

(Ereditato da DbConnection)
EnlistDistributedTransaction(ITransaction)

Permette l'integrazione nella transazione specificata come transazione distribuita.

EnlistTransaction(Transaction)

Permette l'integrazione nella transazione specificata come transazione distribuita.

EnlistTransaction(Transaction)

Consente l'inserimento nella transazione specificata.

(Ereditato da DbConnection)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()
Obsoleta.

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.

(Ereditato da MarshalByRefObject)
GetSchema()

Restituisce informazioni sullo schema per l'origine dati di questo oggetto SqlConnection. Per altre informazioni sullo schema, vedere Raccolte di schemi di SQL Server.

GetSchema()

Restituisce informazioni sullo schema per l'origine dati di questo oggetto DbConnection.

(Ereditato da DbConnection)
GetSchema(String)

Restituisce le informazioni di schema per l'origine dati dell'oggetto SqlConnection usando la stringa specificata per il nome dello schema.

GetSchema(String)

Restituisce le informazioni di schema per l'origine dati dell'oggetto DbConnection usando la stringa specificata per il nome dello schema.

(Ereditato da DbConnection)
GetSchema(String, String[])

Restituisce le informazioni di schema per l'origine dati dell'oggetto SqlConnection utilizzando la stringa specificata per il nome dello schema e la matrice di stringhe specificata per i valori di restrizione.

GetSchema(String, String[])

Restituisce le informazioni di schema per l'origine dati dell'oggetto DbConnection utilizzando la stringa specificata per il nome dello schema e la matrice di stringhe specificata per i valori di restrizione.

(Ereditato da DbConnection)
GetSchemaAsync(CancellationToken)

Si tratta di una versione asincrona di GetSchema(). I provider devono eseguire l'override con un'implementazione appropriata. cancellationToken può facoltativamente essere rispettato. L'implementazione predefinita richiama la chiamata sincrona GetSchema() e restituisce un'attività completata. L'implementazione predefinita restituirà un'attività annullata se viene passato un cancellationToken già annullato. Le eccezioni generate da GetSchema() verranno passate mediante la proprietà Task Exception restituita.

(Ereditato da DbConnection)
GetSchemaAsync(String, CancellationToken)

Si tratta della versione asincrona di GetSchema(String). I provider devono eseguire l'override con un'implementazione appropriata. cancellationToken può facoltativamente essere rispettato. L'implementazione predefinita richiama la chiamata sincrona GetSchema(String) e restituisce un'attività completata. L'implementazione predefinita restituirà un'attività annullata se viene passato un cancellationToken già annullato. Le eccezioni generate da GetSchema(String) verranno passate mediante la proprietà Task Exception restituita.

(Ereditato da DbConnection)
GetSchemaAsync(String, String[], CancellationToken)

Si tratta della versione asincrona di GetSchema(String, String[]). I provider devono eseguire l'override con un'implementazione appropriata. cancellationToken può facoltativamente essere rispettato. L'implementazione predefinita richiama la chiamata sincrona GetSchema(String, String[]) e restituisce un'attività completata. L'implementazione predefinita restituirà un'attività annullata se viene passato un cancellationToken già annullato. Le eccezioni generate da GetSchema(String, String[]) verranno passate mediante la proprietà Task Exception restituita.

(Ereditato da DbConnection)
GetService(Type)

Consente di restituire un oggetto che rappresenta un servizio fornito da Component o dal relativo Container.

(Ereditato da Component)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
InitializeLifetimeService()
Obsoleta.

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.

(Ereditato da MarshalByRefObject)
OnStateChange(StateChangeEventArgs)

Genera l'evento StateChange.

(Ereditato da DbConnection)
Open()

Apre una connessione a un database con le impostazioni delle proprietà specificate dalla proprietà ConnectionString.

OpenAsync()

Versione asincrona di Open(), che apre una connessione di database con le impostazioni specificate da ConnectionString. Questo metodo richiama il metodo virtuale OpenAsync(CancellationToken) con CancellationToken.None.

(Ereditato da DbConnection)
OpenAsync(CancellationToken)

Versione asincrona di Open(), che apre una connessione di database con le impostazioni di proprietà specificate dalla proprietà ConnectionString. Il token di annullamento può essere usato per richiedere che l'operazione venga abbandonata prima che trascorra l'intervallo di timeout. Le eccezioni verranno propagate tramite l'attività restituita. Se l'intervallo di tempo di connessione trascorre senza ottenere la connessione, l'attività restituita viene contrassegnata come attività che presenta errori con un'eccezione. L'implementazione restituisce un'attività senza bloccare il thread chiamante per le connessioni raccolte e non raccolte.

OpenAsync(CancellationToken)

Si tratta della versione asincrona di Open(). I provider devono eseguire l'override con un'implementazione appropriata. Il token di annullamento può facoltativamente essere rispettato.

L'implementazione predefinita richiama la chiamata sincrona Open() e restituisce un'attività completata. L'implementazione predefinita restituirà un'attività annullata se viene passato un cancellationToken già annullato. Le eccezioni generate da Open verranno passate mediante la proprietà Task Exception restituita.

Non richiamare altri metodi e proprietà dell'oggetto DbConnection finché l'attività restituita non viene completata.

(Ereditato da DbConnection)
RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>)

Registra i provider dell'archivio chiavi di crittografia di colonna.

ResetStatistics()

Se viene attivata la raccolta delle statistiche, tutti i valori vengono reimpostati su zero.

RetrieveStatistics()

Restituisce una raccolta di statistiche sulla coppia valore/nome al momento della chiamata al metodo.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
ToString()

Restituisce un oggetto String che contiene il nome dell'eventuale oggetto Component. Questo metodo non deve essere sottoposto a override.

(Ereditato da Component)

Eventi

Disposed

Si verifica quando il componente viene eliminato da una chiamata al metodo Dispose().

(Ereditato da Component)
InfoMessage

Si verifica quando SQL Server restituisce un avviso o un messaggio informativo.

StateChange

Si verifica quando cambia lo stato della connessione.

StateChange

Si verifica quando cambia lo stato della connessione.

(Ereditato da DbConnection)

Implementazioni dell'interfaccia esplicita

ICloneable.Clone()

Crea un nuovo oggetto che è una copia dell'istanza corrente.

IDbConnection.BeginTransaction()

Avvia una transazione di database.

IDbConnection.BeginTransaction()

Avvia una transazione di database.

(Ereditato da DbConnection)
IDbConnection.BeginTransaction(IsolationLevel)

Avvia una transazione di database con il valore specificato di IsolationLevel.

IDbConnection.BeginTransaction(IsolationLevel)

Inizia una transazione di database con il livello di isolamento specificato.

(Ereditato da DbConnection)
IDbConnection.CreateCommand()

Crea e restituisce un oggetto Command associato alla connessione.

IDbConnection.CreateCommand()

Crea e restituisce un oggetto DbCommand associato alla connessione corrente.

(Ereditato da DbConnection)

Si applica a

Vedi anche