Condividi tramite


Istituzione di una connessione

Si applica a: .NET Framework .NET .NET Standard

Scarica ADO.NET

Per eseguire la connessione a Microsoft SQL Server, utilizzare l'oggetto SqlConnection del provider di dati Microsoft SqlClient per SQL Server. Per informazioni sulla sicurezza dell'archiviazione e del recupero delle stringhe di connessione, vedere Protezione delle informazioni di connessione.

Chiusura di connessioni

Al termine dell'utilizzo, chiudere sempre la connessione in modo che possa essere restituita al pool. Il blocco Using in Visual Basic o C# elimina automaticamente la connessione quando il codice esce dal blocco, anche in caso di eccezione non gestita. Per altre informazioni vedere Istruzione using e Istruzione Using.

È anche possibile usare i metodi Close o Dispose dell'oggetto Connessione. Le connessioni che non vengono chiuse in modo esplicito potrebbero non essere aggiunte o restituite al pool. Ad esempio, una connessione che esce dall'ambito ma non viene chiusa in modo esplicito verrà restituita al pool di connessioni solo se è stata raggiunta la dimensione massima del pool e la connessione è ancora valida.

Nota

Non chiamare Close o Dispose su una Connessione, un DataReader o qualsiasi altro oggetto gestito nel metodo Finalize della classe. Nei finalizzatori rilasciare solo le risorse non gestite che la classe controlla direttamente. Se nella classe non sono presenti risorse non gestite, non includere un metodo Finalize nella relativa definizione della classe. Per altre informazioni, vedere Garbage Collection.

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).

Connessione a SQL Server

Per informazioni sui nomi e sui valori validi del formato della stringa, vedere la proprietà ConnectionString dell'oggetto SqlConnection. È anche possibile usare la classe SqlConnectionStringBuilder per creare stringhe di connessione sintatticamente valide in fase di esecuzione. Per altre informazioni, vedere Compilatori di stringhe di connessione.

Nel codice di esempio seguente viene descritta la procedura di creazione e di apertura di una connessione a un database SQL Server.

using Microsoft.Data.SqlClient;

class Program1
{
    static void Main()
    {
        string s = GetConnectionString();

        OpenSqlConnection(s);
        Console.ReadLine();
    }

    private static void OpenSqlConnection(string connectionString)
    {
        using (SqlConnection connection = new SqlConnection(connectionString))
        {
            connection.Open();
            Console.WriteLine("ServerVersion: {0}", connection.ServerVersion);
            Console.WriteLine("State: {0}", connection.State);
        }
    }

    static private string GetConnectionString()
    {
        // To avoid storing the connection string in your code, 
        // you can retrieve it from a configuration file, using the 
        // System.Configuration.ConfigurationSettings.AppSettings property 
        return "Data Source=(local);Initial Catalog=AdventureWorks;"
            + "Integrated Security=SSPI;";
    }
}

Sicurezza integrata e ASP.NET

La sicurezza integrata di SQL Server, nota anche come connessioni attendibili, consente di garantire la protezione quando ci si connette a SQL Server perché non espone un ID utente e una password nella stringa di connessione ed è il metodo consigliato per autenticare una connessione. La sicurezza integrata usa l'identità di sicurezza corrente, o token, del processo in esecuzione. Per le applicazioni desktop, questa identità è in genere l'identità dell'utente attualmente connesso.

L'identità di sicurezza delle applicazioni ASP.NET può essere impostata su diverse opzioni. Per altre informazioni sull'identità di sicurezza usata da un'applicazione ASP.NET al momento della connessione a SQL Server, vedere ASP.NET Impersonation, ASP.NET Authentication e Come fare: Accedere a SQL Server utilizzando la sicurezza integrata di Windows.

Vedi anche